10 の便利な PHP 正規表現

WBOY
リリース: 2016-06-13 12:17:01
オリジナル
1027 人が閲覧しました

10 の実践的な PHP 正規表現

正規表現は、特定の文字、単語、計算などのテキストの説明または一致に使用される文字列を提供する、プログラム開発における重要な要素です。ただし、場合によっては、正規表現を使用して文字列を検証するのは複雑で時間がかかります。この記事では、PHP で正規表現を記述する一般的で実践的な方法を 10 個紹介します。これがあなたの仕事に役立つことを願っています。

1. メールアドレスの認証

メールの認証に使用する正規表現です。しかし、それは効率的で完璧な解決策ではありません。ここではお勧めしません。

1
1
2
3
4
5
6
$email = "[email protected]";
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";
}
234

56

$email = "[email protected]";
if code> code> <code class="php plain">(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) ) {
1
2
3
4
5
if (filter_var([email protected]', FILTER_VALIDATE_EMAIL)) {
    echo "Your email is ok.";
} else {
    echo "Wrong email address format.";
}
echo "あなたのメールアドレスは問題ありません。" ;
} <code class="php キーワード">else {
echo "メールアドレスの形式が間違っています";
}
メールアドレスをより効果的に検証するには、filer_var を使用することをお勧めします。 if (filter_var([email protected]', FILTER_VALIDATE_EMAIL)) {
echo "あなたのメールアドレスは問題ありません。" ;
} else {
echo "電子メール アドレスの形式が間違っています。 ";
}
1
234
5

2. ユーザー名を確認します

これは、文字、数字 (A-Z、a-z、0-9 )、アンダースコア、および文字を含むユーザー名を確認する例です。最小 5 文字、最大 20 文字。同時に、必要に応じて最小値と最大値を適切に変更することもできます。

1
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.";
}
234

56
$username = "user_name12";
if (preg_match('/^[a-zd_]{5,20}$/i', $username)) {

echo "あなたのユーザー名は問題ありません。" ;
} else {

echo "ユーザー名の形式が間違っています。" ;
}
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.";
}
3. 電話番号の確認 これは米国の電話番号を確認する例です。
1
234
56
$phone = "(021)423-2323";
if <code class="php plain">(preg_match('/(?d{3})?[-s.]?d{3}[ -s.]d{4}/x'$phone)) {
echo "あなたの電話番号は問題ありません。" ;
} else {
echo "電話番号が間違っています。" code>;
}

4. IP アドレスの認証

これは IPv4 アドレスの認証に使用される例です。

$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 "IP アドレスは問題ありません。" ;
} else {

echo 「IP アドレスが間違っています。」 ;
}
1
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.";
}
2
34

5

6

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.";
 }
td>
5. 验证邮政编码 これは、一つの用例です。
1
234
56
$zipcode = "12345-5434";
if (preg_match("/^([0-9]{ 5})(-[0-9]{4})?$/i",$zipcode code><code class="php plain">)) {
echo "郵便番号は問題ありません。" ;
} else {
echo "郵便番号が違います。" ;
}

6. 验证SSN(社会保護番号)

これは验证アメリカSSNの例です。 border="0" cellpacing="0" cellpadding="0">

1
2

3
4
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.";
}
5
6
$ssn = "333-23-2329" ;

if (preg_match('/^[d]{3}-[d]{2}-[d]{4}$/',$ssn)) {
echo "SSN は問題ありません。"<code class="php plain">;
} else {
echo 「SSN が間違っています。」;

}

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.";
}
7. 验证信用卡号
123
456
$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 "クレジット カード番号は問題ありません。" ;
} else {
echo "クレジット カード番号が違います。" ;}

8. 验证ドメイン名

1
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.";
 }
23
4

56

$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)) {

code><code class="php function">echo "URL は問題ありません。" ;
} else {
1
2
3
4
$url = "http://ansoncheung.tk/articles";
 preg_match('@^(?:http://)?([^/] )@i', $url, $matches);
 $host = $matches[1];
echo $host;
echo "URL が間違っています。" ;
}

9. 特定URL中引取領域名

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 style="background:#5fc9f6">1</span>', $text);
echo $text;
1
234
$url = "http ://ansoncheung.tk/articles";
preg_match('@^(?:http://)?([^/] )@i'<code class="php plain">、$url$matches);
<code class="php 変数">$host = $matches[1];
echo <code class="php 変数">$host;
10. 将文中关键词高亮显示
123
$text = "AnsonCheung.tk のサンプル文、正規表現は Web プログラミングで普及しています。ここで正規表現を学びます。 wikipedia によると、正規表現 (regex または regexp と省略され、複数形は regexes、regexps、または regexen) は、正規表現プロセッサによって解釈できる形式言語で記述されています。」;
$text = preg_replace( code>"/b(regex)b/i", '&lt ;span style="background:#5fc9f6">1</span>', $text);
echo $text;
関連ラベル:
ソース:php.cn
前の記事:1日の特定の時間範囲内のデータを取得するPHPクエリを作成する方法 次の記事:レッドエンベロープのアルゴリズムについて再度質問させてください。@JXYCYFLM さん、@ さん、以前のアルゴリズムにバグがありました。どう対処すればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート