1

\wに一致するのは私には少し奇妙に思え[a-zA-Z0-9_]ます。なぜ0-9_は単語文字の間に数えられ、なぜ単語文字の間に数えられないのだろうか-

文を分割したい場合:

This is counter-example.

これにより、反例(\w*\b)という単語が2つの部分に分割されます。同様に、にのみ一致します。(count.*?\b)counter

単語文字()に含まれる\b結果のようなものを持つことは可能でしょうか?-\w

それとも私はの使用法を誤解しました\bか?これの標準的な使用法の例はありますか?

4

2 に答える 2

2

\w大文字と小文字とともにアンダースコアと一致するという事実は歴史的です。これは、C識別子と一致するように最初に導入されたという事実によるものです。

まあ、これはJavaにも当てはまります\w(そうです、Javaの\w強調文字とは一致しません)。

\bただし、これはアンカーであり、単語文字と非単語文字の間のフロンティアによって定義されていません。実際、実装に依存しています。

自分のやりたいことを実行するアンカーは実際にはありませんが、単語とダッシュを一致させたい場合は、最善の策があり\w*(-\w*)*ます。

繰り返しますが、normal* (special normal*)*パターン!

(そしてところで、\b一部の方言でのみ「単語アンカー」であり、他の実装では、単語アンカーの最初と最後をそれぞれ定義\<します)\>

[重大なエラーを編集]

于 2011-12-16T19:30:41.787 に答える
1

これを使って:[\w-]*

たとえば、eで終わり、coで始まるものを一致させたいとします。

弦:

This is counter-example.

正規表現:

co[\w-]*e

マッチ:

counter-example
于 2011-12-16T19:28:52.550 に答える