単語のすべての出現に一致させたい場合、最後の単語foo
を使用するか、使用しませんか? \bfoo\b
どちらも機能しているようですが、何が適切ですか?
user2005643
質問する
6561 次
3 に答える
8
両方を使用する必要があります。最後\b
がないと、次のような文字列に一致することになります。
"I love football"
"You foolishly left off your second word boundary"
于 2013-02-05T23:18:14.023 に答える
4
ただし、単語境界\b
の定義は の定義に基づいていることに注意してください\w
。単語境界は、非単語文字と単語文字の間にある場合に定義されます。ここで、単語文字は によって定義され\w
ます。\w
for ASCII 文字列は と同等[A-Za-z0-9_]
であるため、次のようなケース\bfoo\b
も拒否します。
foo123 3foo foo_bar fun_foo
数字 と_
は単語の文字と見なされるため、 のすぐ隣にある場合foo
、単語の境界を形成しないため\bfoo\b
、上記のいずれとも一致しません。
于 2013-02-06T01:19:24.827 に答える
2
次の入力があるとします。
foo foobar
この正規表現は、最初のfoo
:
\bfoo\b
この正規表現は、最初と in にも一致foo
しfoobar
ます。
\bfoo
于 2013-02-06T00:04:14.187 に答える