正規表現
概要
記号や文字列を組み合わせて、目的のキーワードを見つけるためのパターンを作り、検出する手段・方法のこと。
記号はメタキャラクタと呼ばれるもので、それぞれの記号にちゃんと意味がある。
この方法を用いることで、多くの文章の中から簡単に見つけいた文字列を検索することが可能。
メタキャラクタ
メタキャラクタ | 説明 | 正規表現の例 | マッチする例 |
---|---|---|---|
. |
任意の1文字 文字の種類に関係なく1文字に該当 |
b.k (bから始まってkで終わる3桁の文字列) |
bok bak bbk |
* |
直前のパターンの0回以上繰り返し (最長一致) |
b.*k (bから始まってkで終わる2桁以上の文字列) |
bk bok book |
+ |
直前のパターンの1回以上繰り返し (最長一致) |
bo.+k (bから始まってkで終わる3桁以上の文字列) |
bok book boook booooook |
? |
直前のパターンが0〜1回繰り返し (最長一致) |
bo?k |
bok book |
文字列|文字列 |
|の左右にある文字列のいずれか。 (〜または〜) |
大阪|東京 大阪(市|府) |
大阪または東京 |
[文字列] | []の中にある文字列のいずれか1文字。 |
[ABC] [A-G] |
A、B、Cのいずれかにマッチ AからGのいずれかにマッチ |
[^文字列] | [^]の中にある文字列が含まれない1文字 |
[^ABC] [^A-G] |
A、B、C以外のいずれかにマッチ AからG以外のいずれかにマッチ |
^ | 論理行頭 | ^◯ |
◯が行の先頭にある行にマッチ ◯Lineを昨日送ったよ。 Line◯を昨日送ったよ。 Lineを昨日送ったよ。◯ |
$ |
論理行末 |
$。 |
。が行の末尾にある行にマッチ Lineを昨日送ったよ。 Lineを昨日送った。よ 。Lineを昨日送ったよ |
\ | 直後のメタ文字をエスケープする。 |
\$ \* |
\$ $にマッチ。 |
\n |
改行文字 |
\n →改行 ^\n → 空改行 |
東京都渋谷区<改行> <空改行> |
\t | タブ文字 | \t | 男芸人 ランキング |
\s |
空白文字 (半角スペース、\t、\n、\r、\f) |
\s | |
\S |
空白文字 (半角スペース、\t、\n、\r、\f以外全て) |
\S | |
\d | 半角数字 |
\d → 半角数字 \d{4} → 4桁の数字 (〒|ZIP:)\d{3}-\d{4} → 郵便番号 0[89]0-\d{4}-\d{4} → 電話番号(ハイフン有り) 0[89]0\d{8} → 電話番号(ハイフン無し) |
1234567890 1234 〒163-8001 090-0123-4567 08001234567 |
\D |
半角数字以外 (\d以外) |
\D | あいう年’@ |
\w | 半角英数字とアンダースコア |
\w → 半角英数字とアンダースコア [\w.\-]+@[\w\-]+\.[\w.\-]+ → メールアドレス https?://[\w/:%#\$&\?\(\)~\.=\+\-]+ → URL |
fatajnadsa fnnjfp_ hatena_blog.G@hatena_blog.ne.jp |
\W |
半角英数字とアンダースコア以外 (\W以外) |
\W | \w以外 |
\l | 半角英小文字すべて |
\l→ 半角英小文字 [\u\l] → 半角英字 [^\u\l] → 半角英字以外 [\u\l\d] → 半角英数字
|
asffewfona AFNKwfaqTB 123(~~(_{あ亜 oufa802rhr |
\L |
半角英小文字以外 (\l以外) |
\L | \l以外 |
\u | 半角英大文字全て |
\u → 半角英大文字 [\u\l] → 半角英字 [^\u\l] → 半角英字以外 [\u\l\d] → 半角英数字 |
AFNSOSBEUTY AFNKwfaqTB 123(~~(_{あ亜 oufa802rhr |
\U |
半角英大文字以外 (\u以外) |
\U | \u以外 |