htaccess限定ではないけど正規表現の基本的な事のまとめ。
メタ文字を普通の文字として検索する時はメタ文字の前に「¥」を付ける。
例)
¥¥、¥.、¥^、¥*、¥?など
「.」
なんでもよい1文字。
正規表現 | 私は.です。 |
---|---|
検索文字列例 | 私はAです。 私は男です。 私は1です。 |
「^」「$」
行の先頭と最後。
正規表現 | ^こんにちは |
---|---|
検索文字列例 | こんにちはと言った。 こんにちはabc。 |
正規表現 | こんにちは$ |
---|---|
検索文字列例 | おはようこんにちは 5963こんにちは |
「*」「+」「?」
同じ文字の繰り返し。
「*」直前の文字が無いか1つ以上連続。
「+」直前の文字が1つ以上連続。
「?」直前の文字が無いか1つだけある。
正規表現 | おー*い |
---|---|
検索文字列例 | おい おーーい おーーーーーい |
正規表現 | おー+い |
---|---|
検索文字列例 | おーい おーーい おーーーーーい |
正規表現 | おー?い |
---|---|
検索文字列例 | おい おーい |
「.*」
なんでも良い文字が全く無いか、なんでも良い文字の連続。
正規表現 | 今は.*だ |
---|---|
検索文字列例 | 今はだ 今は大変だ 今は忙しくて疲れてるから大変だ |
「|」
区切られた文字列のどれか。
正規表現 | リンゴ|みかん|すいか |
---|---|
検索文字列例 | リンゴ みかん すいか |
「[]」
指定した文字のどれか。
正規表現 | この色は[赤青黄]です |
---|---|
検索文字列例 | この色は赤です この色は青です この色は黄です |
全ての大文字アルファベット(A~Z)や、全ての数字(0~9)を指定したい時は、
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]や[0123456789]とすればできるけど、
もっと簡単に指定する方法がある。
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]→[A-Z]
[0123456789]→[0-9]
正規表現 | これは[A-Z]です |
---|---|
検索文字列例 | これはAです これはDです これはZです |
正規表現 | 数値は[0-9]です |
---|---|
検索文字列例 | 数値は0です 数値は5です 数値は9です |
連続して書く事も可能で指定文字列を増やせる。下記の例だと半角大文字アルファベットと数字を指定している。
正規表現 | これは[A-Z0-9]です |
---|---|
検索文字列例 | これは4です これはYです これは8です |
逆に指定してる文字列以外を指定する事もできる。
[^A-Z]→半角大文字アルファベット以外を指定
[^0-9]→数字以外を指定
この方法も連続して書く事ができる。
[^A-Z0-9]→半角大文字アルファベットと数字以外を指定。
※ひらがななどは注意が必要。JIS漢字コードの並び順にしたがっている。
[ ]内ではメタ文字は普通の文字として認識される。
正規表現 | これは[.*]です |
---|---|
検索文字列例 | これは.です これは*です |
^(否定)を普通の文字と認識させるには注意が必要。先頭に書くと単純に否定の意味になってしまう。
[^^A]→^とA以外の文字
「()」
グループ化。()内の文字列を1つと見なす。
正規表現 | (これ)+です |
---|---|
検索文字列例 | これです これこれです これこれこれこれです |
グループ化「()」の中に「|」がある場合はまず「()」を先に処理する。
正規表現 | そう言えば(今日|明日)は月曜日です |
---|---|
検索文字列例 | そう言えば今日は月曜日です そう言えば明日は月曜日です |