メインコンテンツにスキップ
モジュール 3 · レッスン 2 / 4コース内の 10/32~10 min
モジュールのレッスン (2/4)

単語の境界: `\b` `\B`

\b は 単語境界アンカーです。単語間の位置と一致します。 単語文字 (\w) と非単語文字 (\W、または単語の開始/終了) 文字列)。 ^ や $ と同様に、文字を消費しません。

Code
Pattern: \bgatto\b
Sample:  Il gatto e la gattina giocano.
            ^^^^^

gatto は 単語全体としてのみ一致します: gattina 内のシーケンス gatto は存在しません (最後の o がありません) が、一致しません。 gatti は、最後の i が単語文字であるためです。

\B は反対です。単語ではない位置に一致します。 境界線。

「単語全体」を見つける

\b の最も一般的な使用法は、「単語 X は分離された場合にのみ一致し、一致しない場合にのみ一致します」です。 別の単語の一部として":

Code
\bif\b   matches 'if' but not 'sniff', 'gift', 'lifetime'.

単語の境界と単語以外の文字

境界 \\b はどの物理文字とも一致しません。ポジションテストです。 \\b 境界は、\\w 文字と非 \\w 文字 (またはテキストの開始/終了) の間に存在します。否定 \\B は、現在位置がワード境界ではないことを示します。

試してみてください

運動#regex.m3.l2.e1
試行回数: 0読み込み中…

単語「cat」全体が出現するすべての箇所を検索します (大文字と小文字は区別されません)。 `category`、`concatenate`、`scatter` と一致してはなりません。

エディターを読み込み中…
ヒントを表示

2 つの \\b: 開始の境界と終了の境界の間で「cat」を囲みます。

3 回の試行後に解決策が利用可能になります

復習演習

運動#regex.m3.l2.e2
試行回数: 0読み込み中…

識別子の一部ではないすべての整数を検索します (例: `42` はありますが、`var42` も `42abc` もありません)。両側に「\\b」を使用します。

エディターを読み込み中…
ヒントを表示

\\b\\d+\\b は、「孤立した」数字シーケンスのみに一致します。 abc42 は 42 の前に「c」(単語)があります。

3 回の試行後に解決策が利用可能になります

追加の課題

運動#regex.m3.l2.e3
試行回数: 0読み込み中…

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 回の試行後に解決策が利用可能になります