JavaScriptの正規表現 match・replace : JavaScript

Pocket

パターン検索の関数matchとパターンを置換する関数replaceのまとめ。

検索

string.match(regexp);

» match – MDN

regexpは正規表現リテラル。正規表現リテラルはスラッシュで囲まれたパターン[1][2]

(例) /[0-9]{3}-[0-9]{4}/

matchはマッチしたら配列を返しマッチしないときは空文字の配列nullを返す。

"12".match(/[a-z]+/);
// null
"12ab".match(/[a-z]+/);
// ["ab"]
"12ab".match(/([0-9]+)([a-z]+)/); // **グループ化 第1要素はマッチした全体
// ["12ab", "12", "ab"]
"Ab".match(/[a-z]+/i); // オプション(モード修飾子, フラグ) i - 大文字と小文字を区別しない
// ["Ab"]
"abcdef".match(/[a-z]{2}/);
// ab gオプションがなければ最初にマッチした文字を返す
"abcdef".match(/[a-z]{2}/g);
// ["ab", "cd" , "ef"]

オプションmは下記の記事がとても分かり易い。
» JavaScriptで改行にもマッチする正規表現 – FFFF – 0x

置換

» replace – MDN

replaceは第2引数にコールバック関数を指定するとマッチするたびに呼び出す。

"hog".replace(/hog?/, 'hoge');
// hoge
"hoghog".replace(/hog?/, 'hoge');
// hogehog
"hoghog".replace(/hog?/g, 'hoge');
// hogehoge

関連したJavaScript関数

regexp,exec, regexp, string.match, string.replace, string.split

参考記事

» 基礎1 : 正規表現
» 基礎2 : 正規表現

[1] JavaScriptの正規表現は複数行にわたって書く事はできない。一行に書く。
[2] 正規表現リテラルは下記の記事を参照。
» リテラル : JavaScript

jsFiddle

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。