2010-12-27 20 views

答えて

61

ワード境界(\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 ! 
^^^^ ^^^^^ ^
+4

いいです。私の経験では、*単語境界を説明することは*それらを使うことよりもかなり困難です。 –

+2

私はこれまで単語境界のような明快な説明を見ていませんでした。偉大な者! – Salil

2

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

  • 我々はword char\w = [a-zA-Z0-9_])の先頭/末尾にある場合は、次/前の文字もword charであることを確認し、

    例:"a\B.""a\w"

    "ab""a4""a_"、... "a ""a."

  • の開始/終了の場合(\W = [^a-zA-Z0-9_])次/前の文字もnon-word charであることを確認し、

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

    "-.""- ""--"、...しかしない"-a""-1"word-boundaryについては

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

関連する問題