正規表現: ワード境界

概要: このチュートリアルでは、正規表現でワード境界を使用する方法を学習します。

(\b) は、キャレット (^) とドル記号 ($) と同様の アンカー です。「ワード境界」と呼ばれる位置と一致します。ワード境界の一致は長さ 0 です。

次の 3 つの位置はワード境界とみなされます。

  • 文字がワード文字の場合、文字列の最初の文字の前
  • 文字がワード文字の場合、文字列の最後の文字の後
  • 文字列の 2 つの文字の間にあり、1 つはワード文字で、もう 1 つはワード文字ではない場合

簡単に言うと、ワード境界 \b を使用すると、次の形式での 正規表現 を使用して単語全体を一致させることができます。

\bword\bCode language: JavaScript (javascript)

たとえば、文字列 Hello, JS! では、次の位置はワード境界とみなされます。

次の例では、'JS' が返されます。これは、'Hello, JS!' が正規表現 /\bJS\b/ と一致します。

console.log('Hello, JS!'.match(/\bJS\b/));Code language: JavaScript (javascript)

出力

['JS', index: 7, input: 'Hello, JS!', groups: undefined]Code language: JavaScript (javascript)

ただし、'Hello, JScript'/\bJS\b/ と一致しません。

console.log('Hello, JSscript!'.match(/\bJS\b/));Code language: JavaScript (javascript)

出力

nullCode language: JavaScript (javascript)

\b がない場合、/JS/'Hello, JS''Hello, JScript' の両方に一致します。

console.log('Hello, JSscript!'.match(/JS/)); 
console.log('Hello, JS!'.match(/JS/)); Code language: JavaScript (javascript)

出力

['JS', index: 7, input: 'Hello, JSscript!', groups: undefined]
['JS', index: 7, input: 'Hello, JS!', groups: undefined]Code language: JSON / JSON with Comments (json)

ワード境界は数字と一緒に使用できます。

たとえば、正規表現 \b\d\d\d\d\b は、\w 以外の文字で囲まれた 4 桁の数字と一致します。

console.log('ES 2015'.match(/\b\d\d\d\d\b/));Code language: JavaScript (javascript)

出力

['2015', index: 3, input: 'ES 2015', groups: undefined]Code language: JavaScript (javascript)

次の例では、ワード境界を使用して hh:mm 形式 (例: 09:15) の時間を検索します。

let str = 'I start coding JS at 05:30 AM';
let re = /\b\d\d:\d\d\b/;
let result = str.match(re);

console.log(result);Code language: JavaScript (javascript)

出力

['05:30', index: 21, input: 'I start coding JS at 05:30 AM', groups: undefined]Code language: JavaScript (javascript)

\b はラテン文字以外のアルファベットでは機能しないことに注意することが重要です。

これまでのところで、パターン \d\d\d\d\d\d は 4 桁の数または 2 桁の数と一致するために使用されてきたことがわかります。

カバーされる クオンティファイアチュートリアル でのクオンティファイアを使用すると、より簡単で柔軟になります。はるかに短くなる \d\d\d\d の代わりに \d{4} を使用できます。

まとめ

  • \b アンカーはワード境界の位置と一致します。
このチュートリアルは役立ちましたか?