正規表現は、特定の文字、単語、計算などのテキストを説明または一致させるために使用される文字列を提供する、プログラム開発における重要な要素です。ただし、場合によっては、正規表現を使用して文字列を検証するのは複雑で時間がかかります。この記事では、PHP で正規表現を記述する一般的で実践的な方法を 10 個紹介します。これがあなたの仕事に役立つことを願っています。
1.メールアドレスを確認します
メールを検証するための正規表現です。しかし、それは効率的で完璧な解決策ではありません。ここではお勧めしません。
1 2 3 4 5 6 |
$email = "test@ansoncheung.tk" ;
if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/' , $email )) {
echo "Your email is ok." ;
} else {
echo "Wrong email address format" ;
}
|
メールアドレスをより効果的に検証するには、filer_var を使用することをお勧めします。
1 2 3 4 5 |
if (filter_var( 'test+email@ansoncheung' , FILTER_VALIDATE_EMAIL)) {
echo "Your email is ok." ;
} else {
echo "Wrong email address format." ;
}
|
2. ユーザー名を確認します
これは、文字、数字 (A ~ Z、a ~ z、0 ~ 9)、アンダースコア、および最小 5 文字、最大 20 文字を含むユーザー名を検証する例です。同時に、必要に応じて最小値と最大値を適切に変更することもできます。
1 2 3 4 5 6 |
$username = "user_name12" ;
if (preg_match( '/^[a-zd_]{5,20}$/i' , $username )) {
echo "Your username is ok." ;
} else {
echo "Wrong username format." ;
}
|
3.電話番号を確認します
これは米国の電話番号を認証する例です。
1 2 3 4 5 6 |
$phone = "(021)423-2323" ;
if (preg_match( '/(?d{3})?[-s.]?d{3}[-s.]d{4}/x' , $phone )) {
echo "Your phone number is ok." ;
} else {
echo "Wrong phone number." ;
}
|
4. IPアドレスを確認します
これはIPv4アドレスを検証するために使用される例です。
1 2 3 4 5 6 |
$IP = "198.168.1.78" ;
if (preg_match( '/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/' , $IP )) {
echo "Your IP address is ok." ;
} else {
echo "Wrong IP address." ;
}
|
5.郵便番号を確認してください
これは郵便番号を確認するために使用される例です。
1 2 3 4 5 6 |
$zipcode = "12345-5434" ;
if (preg_match( "/^([0-9]{5})(-[0-9]{4})?$/i" , $zipcode )) {
echo "Your Zip code is ok." ;
} else {
echo "Wrong Zip code." ;
}
|
6. SSN(社会保障番号)を確認します
これは米国のSSNを検証する例です。
1 2 3 4 5 6 |
$ssn = "333-23-2329" ;
if (preg_match( '/^[d]{3}-[d]{2}-[d]{4}$/' , $ssn )) {
echo "Your SSN is ok." ;
} else {
echo "Wrong SSN." ;
}
|
7. クレジットカード番号を確認します
1 2 3 4 5 6 |
$cc = "378282246310005" ;
if (preg_match( '/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/' , $cc )) {
echo "Your credit card number is ok." ;
} else {
echo "Wrong credit card number." ;
}
|
8. ドメイン名を確認します
1 2 3 4 5 6 |
$url = "http://ansoncheung.tk/" ;
if (preg_match( '/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i' , $url )) {
echo "Your url is ok." ;
} else {
echo "Wrong url." ;
}
|
9. 特定のURLからドメイン名を抽出します
1 2 3 4 |
$url = "http://ansoncheung.tk/articles" ;
preg_match( '@^(?:http://)?([^/]+)@i' , $url , $matches );
$host = $matches [1];
echo $host ;
|
10. 本文中のキーワードを強調表示します
1 2 3 |
$text = "Sample sentence from AnsonCheung.tk, regular expression has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor" ;
$text = preg_replace( "/b(regex)b/i" , '<span>, $text );
echo $text ;
|