1. ホーム
  2. regex

[解決済み] 正規表現のメタ文字の違いについて

2022-03-03 03:42:07

質問

との違いを説明できる人はいますか? \b\w 正規表現のメタキャラクタ?私の理解では、これらのメタキャラクタは両方とも単語の境界線に使用されます。これとは別に、多言語コンテンツにはどのメタ文字が有効なのでしょうか?

どのように解決するのですか?

メタキャラクタ \b は、キャレットやドル記号のようなアンカーである。と呼ばれる位置でマッチする。 単語の境界線。 . このマッチは長さがゼロである。

単語境界と認定される位置は3種類あります。

  • 文字列の最初の文字の前、最初の文字が 単語文字
  • 文字列の最後の文字の後、その文字が が単語文字である場合。
  • の2文字の間にある。 文字列で、一方が単語文字で、他方が単語文字でない場合。

簡単に言うと \b を実行することができます。 "全単語のみ"。 という形式の正規表現を使って検索します。 \bword\b . A "ワード文字"。 は、単語を構成するために使用できる文字です。を除くすべての文字は "単語文字" "非単語文字" .

すべてのフレーバーにおいて、文字 [a-zA-Z0-9_] は単語文字です。これらはまた、ショートハンドの文字クラスである \w . を示すフレーバー "アスキー"。 のみを単語文字として認識します。

\w 単語文字" 通常 [A-Za-z0-9_] . アンダースコアと数字が含まれていることに注意してください。

\B のネゲートバージョンです。 \b . \B が存在するすべての位置でマッチします。 \b がない。効果的に \B は2つの単語文字の間の任意の位置と、2つの非単語文字の間の任意の位置でマッチします。

\W[^\w] の否定バージョンです。 \w .