ホームページ  >  記事  >  バックエンド開発  >  PHP開発スキル(12) ~よく使われるPHP正規表現のサンプルコードを詳しく解説~

PHP開発スキル(12) ~よく使われるPHP正規表現のサンプルコードを詳しく解説~

黄舟
黄舟オリジナル
2017-03-17 15:42:361631ブラウズ

正規表現 は、事前定義された特定の文字とこれらの特定の文字の組み合わせを使用して、「ルール文字列」を形成します。この「ルール文字列」は、文字列のフィルタリング ロジックを表現するために使用されます。今日のブログ投稿は、将来の開発中にフォーム検証や文字列検索などを実行できるように、一般的に使用されるいくつかの PHP 正規表現をまとめたものです。

1. 携帯電話番号を照合するための正規表現

携帯電話番号を照合するためのルール:
携帯電話番号の基本形式:
最初の 3 桁は:
Mobile: 134-139 147 150-152 157-159 182 187 188
チャイナユニコム: 130-132 155-156 185 186
テレコム: 133 153 180 189
最後の 8 桁は: 0-9 桁です

/** 
 * @param $mobile string 需要验证的手机号 
 * @return string 
 */  
function pregMobile($mobile)  
{  
    $rule = "/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A";  
    if (preg_match($rule, $mobile, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

2 メールボックスの照合の正規表現

ボックスルール:
基本メールボックス 形式は *****@** です。**@ の前に大文字と小文字の文字または数字が続き、その後に 0 ~複数の大文字と小文字の文字または数字、または _ - @ の文字列が続きます。 1 から複数の大文字と小文字、または数字の文字列の前に .、その後に 1 から複数の大文字と小文字、数字の文字列が続きます。

/** 
 * @param $email string 邮箱号 
 * @return string 结果 
 */  
function pregEmail($email)  
{  
    $rule = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';  
    if (preg_match($rule, $email, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

3. 電話番号の正規表現の照合

電話番号の照合ルール:
市外局番: 3 ~ 5 桁、ほとんどは 4 桁、北京 (010) と上海 (021) は 3 桁、チベットは5 桁の数字。括弧で囲むかどうかを指定できます。市外局番が括弧で囲まれていない場合は、市外局番と番号の間に 0 ~ 1 個のスペースを入れることができます。市外局番と番号の間には 0 ~ 1 個のスペースを入れてください。2 桁の数字または -
番号: 7 ~ 8 桁、例: (010) 12345678 または (010)12345678 または 010--12345678

/** 
 * @param $telephone string 固话号码 
 * @return string 
 */  
function pregTelephone($telephone)  
{  
    $rule = '/^(\(((010)|(021)|(0\d{3,4}))\)( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';  
    if (preg_match($rule, $telephone, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

4. URL に一致する正規表現

一致する URL ルール:
Protocol://ドメイン名 (www/m/wap...).name.suffix/filepath/filename

..../2017030629/165.html

protocol://ドメイン名 (www/m/wap...) .name.suffix/filepath/filename?parameters

.../view.php?aid=165

protocol://ドメイン名 (www/m/wap...).name.suffix/filepath/filename /parameters

.../tags.php?/正则表达式/1/

プロトコル: はい オプション。大文字と小文字で構成されます。プロトコルが記述されていない場合は、:// が存在してはなりません。そうでない場合は、存在する必要があります。://

ドメイン名: 存在する必要があり、大文字と小文字で構成されます。小文字
名前: 存在する必要があります、中国語の英数字
サフィックス: 存在する必要があります、大文字と小文字と . で構成されます
ファイル パス: オプション、大文字と小文字と数字で構成されます
ファイル名: オプション、大文字と小文字で構成されます文字と数字
パラメータ: オプション、存在します? で始まる必要があります。つまり、? の先頭に対応するパラメータ情報がなければなりません

/** 
 * @param $url string url地址 
 * @return string 结果 
 */  
function pregURL($url)  
{  
    $rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';  
    if (preg_match($rule, $url, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

5. ID 番号を照合するための正規表現

ID 番号の照合ルール:

純粋な 15 桁または 18 桁の数字、または 17 桁に x 1 つを加えたもの

/** 
 * @param $idcard string 身份证号码 
 * @return string 结果 
 */  
function pregIdcard($idcard)  
{  
    $rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';  
    if (preg_match($rule, $idcard, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

6。地域の郵便番号を照合するための正規表現

郵便番号の照合ルール:

6 桁、最初の桁は 0 にすることはできません

/** 
 * @param $pos string 邮编号码 
 * @return string 结果 
 */  
function pregPOS($pos)  
{  
    $rule = '/^[1-9]\d{5}$/';  
    if (preg_match($rule, $pos, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

7. IP アドレスの一致正規表現

IP ルールの一致:

**1.**2.**3.**4**1 は 1 桁の 1 ~ 9、2 桁の 01 ~ 99、3 桁の 001 です。 - 255**2 と **3 は 1 桁の場合は 0 ~ 9、2 桁の場合は 00 ~ 99、3 桁の場合は 000 ~ 99 です。255**4 は 1 桁の場合は 1 ~ 9、01 ~ 99 です。 2 桁、3 桁の場合は 01 ~ 99 ビット 001 ~ 255 の 4 つのパラメータが存在する必要があります。

/** 
 * @param $ip string ip地址 
 * @return string 结果 
 */  
function pregIP($ip)  
{  
    $rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))))\.)
    ((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5])))\.){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|
    (0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';  
    if (preg_match($rule, $ip, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

8. 時刻形式を照合するための正規表現

時刻の照合ルール:

形式は次のとおりです: 年-月-日 時:分:秒、年-月-日 時:分、年-月-日:年:1または2で始まる4桁、月:1〜9の1桁、0または1で始まる2桁、単位桁が0で始まる場合は1〜9の数字1桁は1~9の数字、1桁は0または1または2または3で始まる2桁の数字、0で始まる1桁は1~9の数字、および1または2で始まる数字 一の位が0~9の場合、3で始まる場合、一の位は0または1となります。 時:0~9の1桁、0または1で始まる2桁、 1 の位は 0 ~ 9、2 桁は 0 ~ 3 分、0 ~ 5 で始まる 2 桁、1 位は 0 ~ 9 分です。 0 から 9; 0 から 5 最初の 2 桁は 0 から 9 です。

/** 
 * @param $time string 时间 
 * @return string 结果 
 */  
function pregTime($time)  
{  
    $rule = '/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|
    (([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';  
    if (preg_match($rule, $time, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

9、utf8 で中国語に一致する正規表現

/** 
 * @param $chinese string utf8格式中文字 
 * @return string 结果 
 */  
function pregChinese($chinese)  
{  
    $rule = '/([\x{4e00}-\x{9fa5}]){1}/u';  
    if (preg_match($rule, $chinese, $result)) {  
        return $result;  
    } else {  
        return "不匹配!";  
    }  
}

関連記事:

PHP で最も一般的に使用される正規表現の詳細な説明

HTML タグ、スペース、改行をフィルタリングするための php 正規表現

PHP正規表現変数を使用して文字を指定する方法

PHP正規表現のマッチング、置換、セグメンテーション関数の例の簡単な分析

以上がPHP開発スキル(12) ~よく使われるPHP正規表現のサンプルコードを詳しく解説~の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。