JSの正規表現で$の意味は?

JS正規表現における「$」の意味とは?

正規表現とは、ある文字列の中に存在する、パターンを表現するものです。 例えば郵便番号を表現するパターンは「0から9の数字のいずれかを、7回繰り返す」となります。 このようなパターン(正規表現)は後述する、「特殊文字」を組み合わせて記述できます。 正規表現は主に、文字列の検索や置き換えなどに使えます。

「$」は行末を表すメタ文字

JavaScriptの正規表現において、「$」は、直前の文字列が行末と一致するかを判定するメタ文字です。文字列の末尾にのみマッチし、それ以外の位置にはマッチしません。これは、行指向の処理を行う場合に特に便利です。

使用例

例えば、文字列の末尾が "ing" で終わるかどうかを判定したい場合は、以下のような正規表現を使用します。


/ing$/

この正規表現は、"singing", "dancing", "programming" といった文字列にはマッチしますが、"ingredient", "pingpong", "string" といった文字列にはマッチしません。

「$」を使用するメリット

「$」を使用する主なメリットは、以下の点が挙げられます。

メリット 説明
コードの簡潔化 複雑な条件式を記述することなく、行末との一致を簡単に判定できます。
処理の高速化 行末から検索を行うため、効率的なパターンマッチングが可能です。
正確性の向上 行末以外の "ing" にマッチする可能性を排除し、より正確な判定を実現します。

実例

以下は、「$」を使った正規表現の実例です。


const str1 = "JavaScript is awesome!";
const str2 = "I love programming";

const regex = /ing$/;

console.log(regex.test(str1)); // false
console.log(regex.test(str2)); // true

この例では、変数 `str1` は "ing" で終わっていないため、`regex.test(str1)` は `false` を返します。一方、変数 `str2` は "ing" で終わっているため、`regex.test(str2)` は `true` を返します。

まとめ

JavaScriptの正規表現において、「$」は、文字列の末尾を正確かつ効率的に判定するために非常に便利なメタ文字です。「$」を活用することで、コードの可読性、処理速度、正確性を向上させることができます。

参考文献

関連QA

Q1: 「$」は文字列の先頭にも使用できますか?

A1: いいえ、「$」は文字列の末尾にのみ使用できます。文字列の先頭を判定するには、「^」を使用します。

Q2: 「$」と「\n」の違いは何ですか?

A2: 「$」は、文字列の末尾そのものを表します。一方、「\n」は、改行文字を表します。そのため、改行文字を含む文字列の場合、「$」は改行文字の直後にもマッチします。

Q3: 正規表現を学ぶには、どのような教材がおすすめですか?

A3: オンライン学習サイトや技術書など、様々な教材があります。入門者向けの教材から、応用的な内容を扱った教材まで、レベルに合わせて選ぶと良いでしょう。例えば、「Progate」や「ドットインストール」などのオンライン学習サイトでは、JavaScriptの正規表現を学ぶことができます。

その他の参考記事:JavaScript の正規表現