JavaScriptの正規表現
JavaScript で正規表現を利用する場合の記述方法です。正規表現オブジェクトの作成方法、メソッドを使ってマッチした文字列を取得したり置換を行う方法、そして JavaScript で利用可能なオプション(フラグ)について解説します。
※ JavaScript を使った正規表現の詳細な使い方については「JavaScript入門」の中の「JavaScript正規表現」を参照されてください。
(Last modified: )
正規表現オブジェクトの作成
JavaScript
で正規表現オブジェクトを作成するには、正規表現リテラルを使用するか RegExp
コンストラクタを使用します。
/パターン/ /パターン/フラグ new RegExp(/パターン/) new RegExp(/パターン/, 'フラグ')
具合的には次のように記述します。
let regex1 = /apple/; let regex2 = /apple/i; let regex3 = new RegExp(/apple/); let regex4 = new RegExp(/apple/, 'i');
RegExp
コンストラクタを使用する場合はパターンを文字列として指定することもできます。
let regex1 = new RegExp('apple'); let regex2 = new RegExp('apple', 'i');
各種メソッドの利用
JavaScript
で文字列がパターンにマッチしているかどうか調べたり、置換を行うためのメソッドとして次の 6 種類が用意されています。
let regex = /apple/; let str = 'I like apple'; // 文字列が正規表現とマッチするかテストする console.log(regex.test(str)); --> true // 正規表現にマッチした文字列を取得する let result1 = regex.exec(str); console.log(result1[0]); --> apple // 正規表現にマッチした文字列のインデックスを取得する console.log(str.search(regex)); --> 7 // 正規表現にマッチしたすべての文字列を取得する let result2 = str.match(regex); console.log(result2[0]); --> apple // 文字列を正規表現を使った区切り文字で分割する let strAry = str.split(/[ ]/); console.log(strAry); --> (3)?["I", "like", "apple"] // 正規表現を使って指定した文字列を新しい文字列に置換する let newstr = str.replace(/apple/, 'Apple'); console.log(newstr); --> I like Apple
JavaScriptで使用できるオプション(フラグ)
JavaScript
で用意されているオプション(フラグ)は次の 6 種類です。
フラグ | フラグ名 | 説明 |
---|---|---|
g | Global | パターンに一致するすべての文字列が対象となります。 |
i | IgnoreCase | パターンで大文字と小文字を区別しなくなります。 |
m | Multiline | メタ文字の ^ や $ が各行の先頭と末尾にもマッチします。 |
s | DotAll | メタ文字の . が改行文字にもマッチします。 |
u | Unicode | Unicode コードポイントが使用できます。 |
y | Sticky | lastIndex プロパティの位置からのみ一致するかどうかを判定します。 |
-- --
JavaScript で正規表現を利用する場合の記述方法について解説しました。
( Written by Tatsuo Ikura )
Profile
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。