質問

ワードバウンダリーと比較して、正規表現( b)の非単語境界とは何ですか?

役に立ちましたか?

解決

単語の境界(\b)一致できるゼロ幅の一致は次のとおりです。

  • 単語文字の間(\w)および非単語の文字(\W) また
  • 単語文字と文字列の開始または終了の間。

JavaScriptではの定義 \w[A-Za-z0-9_]\W 他の何かです。

否定されたバージョン \b, 、書かれています \B, 、上記が行うゼロ幅の一致です いいえ 所有。したがって、それは一致する可能性があります:

  • 2つの単語文字の間。
  • 2つの非単語文字の間。
  • 非単語文字と文字列の開始または終了の間。
  • 空の文字列。

たとえば、文字列がある場合 "Hello, world!" それから \b 次の場所で一致します:

 H e l l o ,   w o r l d !
^         ^   ^         ^ 

\B それらの場所と一致します \b 一致しない:

 H e l l o ,   w o r l d !
  ^ ^ ^ ^   ^   ^ ^ ^ ^   ^

他のヒント

の基本的な目的 non-word-boundary 次のような正規表現を作成することです。

  • 私たちがの最初/終わりにいる場合 word char (\w = [a-zA-Z0-9_])前/次の文字も word char,

    例えば: "a\B." ~ "a\w":

    "ab", "a4", "a_", 、 ... だがしかし "a ", "a."

  • 私たちがの最初/終わりにいる場合 non-word char (\W = [^a-zA-Z0-9_])前/次の文字も non-word char,

    例えば: "-\B." ~ "-\W":

    "-.", "- ", "--", 、 ... だがしかし "-a", "-1"

にとって word-boundary 似ていますが、隣接する文字が同じクラスであることを確認する代わりにword char/non-word car)彼らは異なる必要があるため、名前は異なります word's boundary.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top