1)正規表現のパターン(時間:5分)
※一通り目を通した程度でよい。
正規表現のパターンについて、こちらの記事をご参照ください。
Java正規表現によくあるマッチ パターン ※Java向けと思われているかもしれませんが、JavaScriptでも通用します。
2)RegExp正規表現オブジェクト(時間:1分)
regexp = new RegExp(patern[, flag])
解説:
patern:正規表現パターン
flag:フラグ。"i"、"g"、"m" の組み合わせを指定します。
i 大文字・小文字を区別しない
g 繰り返し検索
m 複数行に対して検索
例:
regexp = new RegExp("[0-9]*", "g"); //数字([0-9]:0から9まで) 任意個(*:繰り返し)
3)JavaScriptの正規表現の書き方(時間:1分)
3.1)RegExpオブジェクトを用いた書き方
"文字列".match(RegExp)
例:
value = "aabbcc123456";
regex = new RegExp("bc", "i");
if (value.match(regex)) {
alert("bcが含まれています");
}
3.2)RegExpオブジェクトを用いない書き方
"文字列".match(/patern/[flag])
※戻り値:配列(Arrayオブジェクト)。正規表現に合致した文字列を配列。マッチしない場合、nullが返される
※[flag]:省略可能
※flagは"i"、"g"、"m"の組み合わせで指定可能
例:
value = "abcdABCD";
var ret = value.match(/bc/ig); //value.match(/bc/)
if (ret != null) {
alert("bcが含まれています:" + ret); //ret=[bc,BC]
}
4)マッチした結果の取得
※5)をご参照ください。
5)グループの定義(時間:1分)
例:
var ret = "abcd123ABCD".match(/d([0-9]*)A/); //【d+複数の数字+A】にマッチする文字列を検索。戻り値:[d123A, 123]配列
alert(ret); //ret[1]=123
//RegExp.$n :直前の正規表現のマッチした結果、n番目の (...) に対応する文字列を返す
alert(RegExp.$1); //グローバル変数。123
6)正規表現による置換(時間:1分)
例:
alert("abcdABCD".replace(/ab/i,"**")); //大小区別しないabというパターンを**に置換する
//**cdABCD 結果:**cdABCD というメッセージが表示されます。
alert("abcdABCD".replace(/ab/ig,"**")); //大小区別しないabというパターンを**に繰り返しで置換する
//**cd**CD 結果:**cd**CD というメッセージが表示されます。
7)正規表現による分割(時間:1分)
例:
alert("a1b2c3d".split(/[0-9]*/)); //数字区切りで分割。戻り値:[a,b,c,d]配列
サンプル
test.html
<html>
<body>
<script type="text/javascript">
alert("abcd123ABCD".match(/d([0-9]*)A/)); //d123A, 123
alert("a1b2c3d".split(/[0-9]*/)); //a,b,c,d
var ret = "abcdABCD".match(/bc/ig); //"abcdABCD".match(/bc/)
if (ret != null) {
alert("bcが含まれています:" + ret); //ret=[bc,BC]
}
alert("aabbcc123456".match(/bc/i)); //bc
if ("aabbcc123456".match(/bc/i)) {//"aabbcc123456".match(/bc/)
alert("bcが含まれています");
}
alert("abcdABCD".replace(/ab/i,"**"));
//**cdABCD
alert("abcdABCD".replace(/ab/ig,"**"));
//**cd**CD
</script>
</body>
</html>
.