Javascriptで正規表現で検索する時にどうやるんだっけって忘れちゃう部分があるのでよく忘れちゃう部分をまとめておきたいと思います。
#そもそも検索する時
表記方法としては以下のようにする。
// RegExpを使う
let e = new RegExp('abc');
'abcdef123abc'.match(e);
// RegExpを使わない
'abcdef123abc'.match(/abc/);
#フラグ
フラグ | 説明 |
---|---|
i | 大文字小文字を区別しない |
g | 最初の1回だけではなく繰り返し検索する |
m | 複数行で検索する |
// RegExpを使う
let e = new RegExp('abc', 'ig');
'abcdef123abc'.match(e);
// RegExpを使わない
'abcdef123abc'.match(/abc/ig);
#エスケープ
RegExpを使用する場合は2回バックスラッシュを使用することを忘れない。
// RegExpを使う
let e = new RegExp('\\d');
'abcdef123abc'.match(e);
// RegExpを使わない
'abcdef123abc'.match(/\d/);
#部分文字列取り出し
()を使用することで検索結果の部分文字列を取り出すことができます。
let e = new RegExp('a(b)c');
let result = 'abcdef123abc'.match(e);
console.log(result[1]); // 'b'が出力
#肯定的先読み(?=abc)
直後にabcがある文字列を検索する。
// RegExpを使う
let e = new RegExp('123(?=abc)');
let result = '123abc'.match(e);
console.log(result[0]); // '123'が出力
#否定的先読み(?!abc)
直後にabcがない文字列を検索する。
// RegExpを使う
let e = new RegExp('123(?!abc)');
let result = '123def'.match(e);
console.log(result[0]); // '123'が出力
#肯定的後読み(?<=abc)
直前にabcがある文字列を検索する。
// RegExpを使う
let e = new RegExp('(?<=abc)123');
let result = 'abc123'.match(e);
console.log(result[0]); // '123'が出力
#否定的後読み(?<!abc)
直前にabcがない文字列を検索する。
// RegExpを使う
let e = new RegExp('(?<!abc)123');
let result = 'def123'.match(e);
console.log(result[0]); // '123'が出力
随時追記していきます。