0

任意の順序で2つの名前を含む文字列に一致する正規表現には、任意の順序で文字列を一致させる方法の適切な説明があります。だから使用する

(?=.*\bjack\b)(?=.*\bjames\b)

一致します

jack,james

james,jack

ただし、それも一致します

jack,james,jill

任意の順序で文字列に一致するが、それらの文字列のみに一致する正規表現を作成するにはどうすればよいですか(つまり、任意の順序でジャックとジェームに一致するが、ジャックとジェーム以外のものを含む文字列には一致しない正規表現)

4

1 に答える 1

2

「ジャックとジェームズ以外のもの」の正確な意味によって異なりますが、一般的な考え方は\b(jack|james)\b、他の文字で囲まれたいくつかの文字と一致させることです。

^\W*(\b(jack|james)\b\W*)*$

を使用する代わりに、一致の正確な数または範囲を指定できます*。たとえば、そのような単語を2つまたは3つ正確に一致させるには:

^\W*(\b(jack|james)\b\W*){2,3}$
于 2013-01-20T23:45:40.457 に答える