JavaScriptの正規表現(Regular Expressions、略して「regex」)
特定の文字列パターンを検索・一致させるための便利なツールです。
1. 正規表現の基本的な使い方
正規表現は、文字列に対して「検索」や「置換」を行うときに使用します。
JavaScriptでは、/pattern/flags
という形式で記述します。
例:
const regex = /abc/;
この正規表現は、"abc" という文字列を探します。
2. フラグ
正規表現にはいくつかの「フラグ」を追加して、検索の方法を変更できます。
よく使われるフラグを紹介します:
-
g(global)
: グローバル検索。すべての一致を探します -
i(ignore case)
: 大文字と小文字を区別しません -
m(multiline)
: 複数行モードでの検索を可能にします
例:
const regex = /abc/gi;
この例は、"abc" という文字列を大文字・小文字を無視して、すべての一致を探します。
3. 特殊文字
正規表現には、特定の文字を表す「特殊文字」があります。
これを使って、より複雑なパターンを作成できます。
-
.
:任意の1文字に一致(改行以外) -
\d
:数字(0-9)に一致 -
\w
:英数字またはアンダースコアに一致 -
\s
:空白文字(スペース、タブ、改行など)に一致
例:
const regex = /\d\d\d/;
これは、3つの連続した数字に一致します(例: "123")。
4. 繰り返し
特定のパターンを繰り返す場合、量指定子を使います。
-
*
:0回以上の繰り返し -
+
:1回以上の繰り返し -
?
:0回または1回の繰り返し -
{n}
:n回の繰り返し -
{n,}
:n回以上の繰り返し -
{n,m}
:n回からm回の間の繰り返し
例:
const regex = /\d{3,5}/;
これは、3~5桁の数字に一致します。
5. キャラクタクラス
複数の文字の中からいずれかに一致させる場合、[]を使います。
例:
const regex = /[abc]/;
この正規表現は、"a"、"b"、または"c"のいずれかに一致します。
さらに、[^abc]のように^を使うと、「a」「b」「c」以外の文字に一致させることができます。
6. エスケープ
特殊文字自体を検索したい場合は、その前にバックスラッシュ () を使ってエスケープします。
例:
const regex = /\./;
これはピリオド自体を検索します(.は任意の1文字ではなく、ピリオドとして扱われます)。
7. マッチ、置換、検索
JavaScriptでは正規表現を使って文字列操作が可能です。
代表的なメソッドを紹介します:
-
match()
: パターンに一致する部分を配列で返します -
replace()
: 一致した部分を他の文字列に置換します -
test()
: パターンが一致するかどうかを真偽値(trueまたはfalse)で返します
例:
const text = "abc123";
const regex = /\d+/;
console.log(text.match(regex)); // ["123"]
console.log(text.replace(/\d+/, "456")); // "abc456"
console.log(regex.test(text)); // true
8. まとめ
- 正規表現は、パターンを使って文字列を検索するための強力なツールです。
- 基本的な使い方や特殊文字、繰り返し、キャラクタクラスを理解することで、複雑なパターンも扱えるようになります。
- JavaScriptには、
match
、replace
、test
などのメソッドがあり、実際の文字列操作に使えます。