正規表現の重要性がますます高まっている。たとえば、HTMLのフォームでも、正規表現による値のチェックができるようになってきている。
HTML 5.2: 4.10. Forms – W3C
そこで、簡単ではあるが、正規表現の例を書いてみようと思う。
次の正規表現は、郵便番号というか、3桁の半角数字、ハイフン、4桁の半角数字が入力された場合、マッチすると言う言い方をするが、整合する表現になる。
\d{3}-\d{4}
まとめると
c 特殊な意味を持たない任意の文字cはその文字自身を意味する。
\c 文字cの特殊な意味をなくす。
^文字 行の先頭の文字にマッチ
文字$ 行の終わりの文字にマッチ
文字\b 空白で区切られた単語にマッチ
文字\B 空白で区切られていない単語にマッチ
. 任意の1文字にマッチ(改行は除く)
[文字] 文字のうちの任意の1文字にマッチ、a-zのような範囲の指定も有効
[^文字] 文字にない任意の1文字にマッチ、範囲指定も有効。
\n n番目の\(…\)がマッチしたものを示す。
r* 0回以上のrの繰り返しにマッチ
r+ 1回以上のrの繰り返しにマッチ
r? 0または1回のrの出現でマッチ
文字{値} 値の指定個数でマッチ
文字{値,} 値の指定個数以上でマッチ
文字{値1,値2} 値1~値2の指定範囲でマッチ
r1r2 r1r2という並び
r1 | r2 r1またはr2、|で区切られた任意の文字にマッチ
\(r\) タグ付き正規表現r。ネスト可能。
(r) 正規表現r。ネスト可能。
\c文字 コントロールコードの文字にマッチ
\d 数値([0-9])にマッチ
\D 数値以外の文字([^0-9])にマッチ
\f フォームフィールドの文字にマッチ
\n 改行文字にマッチ
\r 復帰文字にマッチ
\s 1文字の区切り文字([\f\n\r\t\v])にマッチ
\S 区切り文字以外([^\f\n\r\t\v])の一文字にマッチ
\t タブ文字にマッチ
\v 垂直タブ文字にマッチ
\w 英数文字([A-Za-z0-9_])にマッチ
\W 英数文字([A-Za-z0-9_])以外の文字にマッチ
\★ ★(数値)番目の文字列(…)にマッチ
\o値 8進数の値にマッチ
\x値 16進数の値にマッチ
\. 「.」そのものの文字にマッチ
\- 「-」そのものの文字にマッチ
\\ 「\」そのものの文字にマッチ
\/ 「/」そのものの文字にマッチ
() グループ化(マッチデータはRegExp.$1~9で取り出せる)
まだまだあるが、最後に、リンクにhttpが含まれないパターンの正規表現を私なりに書いてみる。否定的先読みという正規表現を使用する。
<a href=”((?!http).*)” target=”_blank”>