正規表現(Regular Expression)のテスト
正規表現テストツール(preg_match)
正規表現 メタ文字など(PHP)
[abc] | a, b, c いずれかの1文字 |
^ | 行頭 |
[^abc] | a, b, c 以外の1文字 |
$ | 行末 |
. | 改行以外の1文字 |
() | グループ化 |
a|b | a, b いずれかの文字列 |
\ | 直後のメタ文字をエスケープ |
[A-Z] | 大文字のアルファベット1文字 |
* | 直前パターンの0回以上繰り返し(最長一致) |
[0-9] | 数字1文字 |
+ | 直前パターンの1回以上繰り返し(最長一致) |
[a-zA-Z] | アルファベット1文字 |
? | 直前パターンの0~1回繰り返し(最長一致) |
|
*? | 直前パターンの0回以上繰り返し(最短一致) |
\n | 改行 |
+? | 直前パターンの1回以上繰り返し(最短一致) |
\t | タブ |
?? | 直前パターンの0~1回繰り返し(最短一致) |
\s | 空白(半角スペース、\t、\n、\r、\f) |
|
\S | 空白(半角スペース、\t、\n、\r、\f)以外 |
{n} | n回の繰り返し |
\b | 語の区切り位置 |
{n,m} | n回以上、m回以下の繰り返し |
\B | 語の区切り位置以外 |
{n,} | n回以上の繰り返し |
\d | 半角数字 |
|
\D | 半角数字以外 |
|
\w | 半角英数字とアンダースコア |
修飾子(末尾のデリミタの後ろに記述) |
\W | 半角英数字とアンダースコア以外 |
i | 大小文字の違いを無視する |
\l | 半角英小文字 |
s | . を改行文字にもマッチさせる |
\L | 半角英小文字以外(英大文字、数字、全角文字など) |
m | 複数行として処理する |
\u | 半角英大文字 |
u | UTF-8 として扱う |
\U | 半角英大文字以外(英小文字、数字、全角文字など) |
x | エスケープされていない空白文字を無視する |
正規表現のサンプル(PHP preg_match)
郵便番号 |
/^[0-9]{3}-[0-9]{4}$/ |
if(preg_match('/^[0-9]{3}-[0-9]{4}$/', $str)){
echo '郵便番号です';
}else{
echo '郵便番号ではありません';
}
電話番号 |
/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/ |
if(preg_match('/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/', $str)){
echo '電話番号です';
}else{
echo '電話番号ではありません';
}
URL |
/^(https?)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/ |
※日本語を含むURLには対応していません。 |
if(preg_match("/^(https?)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/", $url)){
echo 'URLです';
}else{
echo 'URLではありません';
}
フルパスからファイル名を取り出す |
/[^\\]+$/ |
if(preg_match('/[^\\]+$/', $path, $fname)){
echo 'ファイル名:' .$fname[0];
}else{
echo 'パスではありません';
}
IPアドレス | /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/ |
全角空白のトリム | /^*(.*?)*$/u |
半角+全角空白のトリム | /^[\s]*(.*?)[\s]*$/u |