パターン検索の関数matchとパターンを置換する関数replaceのまとめ。
string.match(regexp);
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は第2引数にコールバック関数を指定するとマッチするたびに呼び出す。
"hog".replace(/hog?/, 'hoge'); // hoge "hoghog".replace(/hog?/, 'hoge'); // hogehog "hoghog".replace(/hog?/g, 'hoge'); // hogehoge
regexp,exec, regexp, string.match, string.replace, string.split
» 基礎1 : 正規表現
» 基礎2 : 正規表現
[1] JavaScriptの正規表現は複数行にわたって書く事はできない。一行に書く。
[2] 正規表現リテラルは下記の記事を参照。
» リテラル : JavaScript
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。