35

単語境界と比較した、正規表現(\ B)の非単語境界とは何ですか?

4

2 に答える 2

93

単語の境界(\b)は、以下に一致する可能性のあるゼロ幅の一致です。

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

Javascriptでは、\wis[A-Za-z0-9_]\Wisの定義は他のものです。

の否定バージョンは\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 !
  ^ ^ ^ ^   ^   ^ ^ ^ ^   ^
于 2010-12-27T20:28:21.847 に答える
4

の基本的な目的は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です。

于 2015-06-02T12:29:12.270 に答える