正規表現: アンカー

概要: このチュートリアルでは、正規表現のアンカーを使用して文字の前または後に位置を一致させる方法を学びます。

アンカーは 正規表現 で特別な意味を持っています。これらは文字に一致しません。代わりに、文字の前または後の位置に一致します

  •  ^ – キャレットアンカーはテキストの先頭に一致します。
  •  $ – ドルアンカーはテキストの末尾に一致します。

次の例を参照してください

let str = 'JavaScript';
console.log(/^J/.test(str));Code language: JavaScript (javascript)

出力

trueCode language: JavaScript (javascript)

/^J/J 文字で始まるテキストに一致します。true を返します。

次の例は false を返します。文字列 JavaScriptS 文字で始まらないためです

let str = 'JavaScript';
console.log(/^S/.test(str));Code language: JavaScript (javascript)

出力

falseCode language: JavaScript (javascript)

同様に、次の例は文字列 JavaScriptt 文字で終わるため true を返します

let str = 'JavaScript';
console.log(/t$/.test(str));Code language: JavaScript (javascript)

出力

trueCode language: JavaScript (javascript)

文字列がパターンに完全に一致するかどうかを確認するために、アンカー ^$ を使用することがよくあります。次の例では、入力文字列が 12:05 などのタイム形式 hh:mm に一致するかどうかを確認します

let isValid = /^\d\d:\d\d$/.test('12:05');
console.log(isValid);Code language: JavaScript (javascript)

出力

trueCode language: JavaScript (javascript)

次の例は false を返します

let valid = /^\d\d:\d\d$/.test('12:105');
console.log(valid);Code language: JavaScript (javascript)

出力

falseCode language: JavaScript (javascript)

アンカー ^ と $ のマルチラインモード: m フラグ

アンカー ^ または $ のデフォルトはシングルラインモードです。シングルラインモードでは、アンカー ^$ は文字列の先頭と末尾に一致します。

マルチラインモードを有効にするには、m フラグを使用します。マルチラインモードでは、^ または $ アンカーは文字列の先頭または末尾、または行の先頭または末尾に一致します。

次の例は、マルチライン文字列の最初の桁のみを返します

let str = `1st line
2nd line
3rd line`;

let re = /^\d/g;
let matches = str.match(re);

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

出力

['1']Code language: JSON / JSON with Comments (json)

フラグ m を追加すると、アンカー ^ は行の先頭の桁にも一致します。次のように

let str = `1st line
2nd line
3rd line`;

let re = /^\d/gm;
let matches = str.match(re);

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

出力

['1', '2', '3']Code language: JSON / JSON with Comments (json)

概要

  • アンカー ^ を使用してテキストの先頭に一致します。
  • アンカー $ を使用してテキストの末尾に一致します。
  • m フラグを使用してマルチラインモードを有効にします。これにより、^$ アンカーがテキストの先頭と末尾だけでなく、行の先頭と末尾にも一致するように指示されます。
このチュートリアルは役に立ちましたか?