2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javascriptでよく忘れちゃう正規表現

Posted at

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'が出力

随時追記していきます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?