オプションフラグ
オプションフラグを使うことによってさまざまなことができるようになります。
オプションフラグ |
内容 |
g |
グローバル検索を行う |
i |
大文字・小文字を区別しない検索を行う |
m |
行頭(^)や行末($)のマッチングが文字列の先頭・末尾だけではなく、各行の行頭・行末にもマッチする |
d |
indices でマッチした文字列の開始・終了インデックスを取得できる |
y |
一致した文字を順に返す |
s |
.(ドット)が改行文字に一致する |
u |
unicode 対応 |
※ グローバル検索とは、指定した文字列が複数ある場合、すべてを置き換えます。
.(ドット)
改行文字以外の1文字に一致する。(s フラグが有効の場合は、空白にも一致)
script.js - Node.js
let str = "a";
let pattern = /../
console.log(pattern.test(str));
[^]
a または b または c の1文字以外に一致する
script.js - Node.js
let str = "abcdef";
let pattern = /[^abc]/g;
console.log(str.match(pattern));
// 結果
// [ 'd', 'e', 'f' ]
\w
半角英数字またはアンダースコアの1文字に一致する。[a-zA-Z0-9_]と同じ
script.js - Node.js
let str = "あ_い%うえoかきくkEこ";
let pattern = /\w/g;
console.log(str.match(pattern));
// 結果
// [ '_', 'o', 'k', 'E' ]
\W
半角英数字またはアンダースコア以外の1文字に一致する
script.js - Node.js
let str = "あ_い%うえoかき#くkEこ";
let pattern = /\W/g;
console.log(str.match(pattern));
// 結果
//[
// 'あ', 'い', '%',
// 'う', 'え', 'か',
// 'き', '#', 'く',
// 'こ'
//]
\d
0 ~ 9 の半角の数値1文字に一致する
わかりづらいですが次のサンプルでは、9の部分は全角です。
script.js - Node.js
let str = "1あいうえお9";
let pattern = /\d/g;
console.log(str.match(pattern));
// 結果
// [ '1' ]
\D
0 ~ 9 の半角の数値以外の1文字に一致する
わかりづらいですが次のサンプルでは、9の部分は全角です。
script.js - Node.js
let str = "1あいうえお9";
let pattern = /\D/g;
console.log(str.match(pattern));
// 結果
// [ 'あ', 'い', 'う', 'え', 'お', '9' ]
\s
スペース、タブ、改ページ、改行の1文字に一致
わかりづらいですが次のサンプルでは、「 え 」の後のスペースは全角です。
script.js - Node.js
let str = `1 あ
い うえ お9\n`;
let pattern = /\s/g;
console.log(str.match(pattern));
// 結果
// [
// ' ', ' ', ' ',
// ' ', '\n', ' ',
// ' ', '\n'
// ]
{n} {m,n} {m,}
{n} は、直前の文字が n 回繰り返す場合に一致する
script.js - Node.js
let str = "abcaadea"
let pattern = /a{2}/g;
console.log(str.match(pattern));
// 結果
// [ 'aa' ]
// .............................................................
let str2 = "abcadea"
let pattern2 = /a{2}/g;
console.log(str2.match(pattern2));
// 結果
// null
{m,n} 直前の文字が m ~ n 回繰り返す場合に一致する
script.js - Node.js
let str = "abcaaaadea"
let pattern = /a{2,4}/g;
console.log(str.match(pattern));
// 結果
// [ 'aaaa' ]
{m,} 直前の文字が m 回以上繰り返す場合に一致する
script.js - Node.js
let str = "abcaaaadea"
let pattern = /a{2,}/g;
console.log(str.match(pattern));
// 結果
// [ 'aaaa' ]
?
直前の文字が 0 回または 1 回繰り返す場合に一致
script.js - Node.js
let str = "";
let pattern = /a?/g;
console.log(str.match(pattern));
// 結果
// [ '' ]
// .............................................................
let str2 = "aa";
let pattern2 = /a?/g;
console.log(str2.match(pattern2));
// 結果
// [ 'a', 'a', '' ]
()
グループ化します。
「 (じゃ)+ーん 」の場合、検索できる文字列は、「 じゃーん 」や「 じゃじゃーん 」になります。
script.js - Node.js
let str = "じゃーん";
let pattern = /(じゃ)+ーん/g;
console.log(str.match(pattern));
// 結果
// [ 'じゃーん' ]
// .............................................................
let str2 = "じゃじゃーん";
let pattern2 = /(じ)+ゃーん/g;
console.log(str2.match(pattern2));
// 結果
// [ 'じゃーん' ]
|(パイプ)
「 ab|ac 」の場合、ab または ac の文字列に一致
script.js - Node.js
let str = "abcdeac";
let pattern = /(a|c)/g;
console.log(str.match(pattern));
// 結果
// [ 'a', 'c', 'a', 'c' ]