これがregexrでのあなたのケースのオンラインビューです:http://gskinner.com/RegExr/?325rr
「)」が含まれているのは、正規表現がa、e、i、o、またはu以外の文字を[^aeiou]
意味するためです。そして、それは「)」を含みます。
正規表現が機能する方法は、アンカー\b
が解釈される方法と関係があります。このページから
単語の境界として適格な3つの異なる位置があります。
文字列の最初の文字の前で、最初の文字がワールド文字の場合。
文字列の最後の文字の後、最後の文字が単語文字の場合。
文字列内の2つの文字の間。一方は単語文字で、もう一方は単語文字ではありません。
したがって、最初の「)」の前ではなく\b
、最初のsの前に最初に一致します(ルール1によって最初の単語境界を取得しないため)。最初の試合はダッシュの前のアンカーで終了しました。次の試合は、ダッシュから始まる試合を取得できないため、「(」とsの間のアンカーで始まります!(試してみてください!)。3番目の試合は、bと"の間のアンカーで始まります。 )」。「)」が入っていないので、次の試合を始めることができます。また、これもうまく機能します。直後に、単語の境界が終了する0個以上のazが続きます。[aeiou]