モジュールのレッスン (2/4)
単語の境界: `\b` `\B`
\b は 単語境界アンカーです。単語間の位置と一致します。
単語文字 (\w) と非単語文字 (\W、または単語の開始/終了)
文字列)。 ^ や $ と同様に、文字を消費しません。
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto は 単語全体としてのみ一致します: gattina 内のシーケンス
gatto は存在しません (最後の o がありません) が、一致しません。
gatti は、最後の i が単語文字であるためです。
\B は反対です。単語ではない位置に一致します。
境界線。
「単語全体」を見つける
\b の最も一般的な使用法は、「単語 X は分離された場合にのみ一致し、一致しない場合にのみ一致します」です。
別の単語の一部として":
\bif\b matches 'if' but not 'sniff', 'gift', 'lifetime'.単語の境界と単語以外の文字
境界 \\b はどの物理文字とも一致しません。ポジションテストです。 \\b 境界は、\\w 文字と非 \\w 文字 (またはテキストの開始/終了) の間に存在します。否定 \\B は、現在位置がワード境界ではないことを示します。
試してみてください
単語「cat」全体が出現するすべての箇所を検索します (大文字と小文字は区別されません)。 `category`、`concatenate`、`scatter` と一致してはなりません。
ヒントを表示
2 つの \\b: 開始の境界と終了の境界の間で「cat」を囲みます。
3 回の試行後に解決策が利用可能になります
復習演習
識別子の一部ではないすべての整数を検索します (例: `42` はありますが、`var42` も `42abc` もありません)。両側に「\\b」を使用します。
ヒントを表示
\\b\\d+\\b は、「孤立した」数字シーケンスのみに一致します。 abc42 は 42 の前に「c」(単語)があります。
3 回の試行後に解決策が利用可能になります
追加の課題
Find the sequence `cat` only if it starts a longer word, excluding when it appears as a whole word or at the end (e.g. match `catalog` but not `wildcat` or isolated `cat`).
ヒントを表示
cat の先頭 (単語境界) には \\b を使用し、末尾 (非単語境界) には \\B を使用します。
3 回の試行後に解決策が利用可能になります