正規表現についてよく使うメソッドを紹介します。
正規表現とは
正規表現とは、文字列内で文字の組み合わせを照合するために用いられるパターンです。 JavaScript では、正規表現はオブジェクトでもあります。これらのパターンは RegExp
の exec()
および test()
メソッドや、String
の match()
、 matchAll
、replace
、search
、split
メソッドで使用できます。
正規表現の使い方
メソッド | 説明 |
---|---|
exec() |
文字列内で一致するものの検索を実行します。結果情報の配列を返します。一致するものがなければ null を返します。 |
test() |
文字列内で一致するものがあるか検査します。 true または false を返します。 |
match() |
キャプチャグループを含む、すべての一致するものを含む配列を返します。一致するものがない場合は null を返します。 |
matchAll() |
キャプチャグループを含む、すべての一致するものを含む反復子を返します。 |
search() |
文字列内で一致するものがあるか検査します。一致した位置を返します。検索に失敗した場合は -1 を返します。 |
replace() |
文字列内で一致するものを一つ検索し、一致した部分文字列を置換する部分文字列で置換します。 |
replaceAll() |
文字列内で一致するものすべてを一つ検索し、一致した部分文字列を置換する部分文字列で置換します。 |
split() |
正規表現または固定文字列を用いて文字列を分割し、部分文字列の配列に入れます。 |
使用例
let re = /ab+c/
let result = re.exec(‘aadbcdef’);
console.log(result);
let result2 = re.test(‘aadbcdef’);
console.log(result2);
let str = ‘aabcdef’;
let result3 = str.match(/ab+c/);
console.log(result3);
for(let v of result3) {
console.log(v);
}
let str2 = ‘aabcdeabcf’;
let result4 = str2.search(/ab+c/g);
console.log(result4);
let str3 = ‘aabcdeabcf’;
let result5 = str3.replace(/(ab)(cd)/g,’123′);
console.log(result5);
let result6 = ‘2016/12/04’.split(/\//);
console.log(result6);
正規表現フラグ
正規表現には、グローバル検索や大文字小文字を区別しない検索などの機能を実現する 6 種類のオプションフラグがあります。
フラグ | 説明 | |
---|---|---|
d |
一致した部分文字列の位置を生成します。 | |
g |
グローバル検索を行います。 | |
i |
大文字・小文字を区別しない検索です。 | |
m |
複数行の検索です。 | |
s |
. を改行文字と一致するようにします。 |
|
u |
“unicode” です。パターンを一連の Unicode コードポイントとして扱います。 | |
y |
対象文字列の現在の位置から始まる部分に一致するものを探す「先頭固定」 (sticky) 検索を行います。 sticky のページを参照してください。 |