ホームページ  >  記事  >  バックエンド開発  >  最も完全な PHP 正規表現 (history_正規表現)

最も完全な PHP 正規表現 (history_正規表現)

韦小宝
韦小宝オリジナル
2017-12-04 10:55:553946ブラウズ

正規表現は、開発で頻繁に使用する必要があります。現在、javascript、java、.net、phpなどの多くの開発言語に正規表現アプリケーションがあります。今日はその中で最も重要なものを紹介します。歴史の包括的な PHP 正規表現を見てみましょう (携帯電話番号には 177-*** を追加する必要があります)

まず、正規表現マインド マップを見てみましょう:

1. 数字の確認

1の表現 数字:
^[0-9]*$
2 n桁の数字:
^d{n}$
3 少なくともn-桁の数値:
^ d{n,}$
4 m-n の数値:
^d{m,n}$
5 ゼロとゼロ以外で始まる数値:
^(0|[1-9 ][0-9 ]*)$
6 ゼロ以外で始まり小数点以下 2 桁までの数値:
^([1-9][0-9]*)+(.[0-9 ]{1,2})? $
7 小数点以下 1 ~ 2 桁の正または負の数:
^(-)?d+(.d{1,2})?$
8 正の数、負の数、および小数:
^( -|+)?d+(.d+)?$
9 小数点以下 2 桁の正の実数:
^[0-9]+(.[0-9]{2 })?$
10 には、小数点以下 3 桁の 1 ~正の実数があります:
^[0-9]+(.[0-9]{1,3})?$
11 ゼロ以外の正の整数:
^[1-9]d *$ または ^([1-9][0-9]*){1,3}$ または ^+?[1-9][0-9]*$
12 ゼロ以外の負の整数:
^-[1-9][]0-9"*$ または ^-[1-9]d*$
13 非負の整数:
^d+$ または^[1-9]d*|0$
14 正でない整数:
^-[1-9]d*|0$ または ^((-d+)|(0+))$
15負でない浮動小数点数:
^d+(.d+ )?$ または ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
16 非正の浮動小数点数:
^((- d+(.d+)?)|(0+(.0+)?))$ または ^(-([1-9]d*.d *|0.d*[1-9]d*))| 0?.0+|0$
17 正の浮動小数点数:
^[1-9]d*.d*|0.d* [1-9]d*$ または ^(([0-9] +.[0-9]*[1-9][0-9]*)|([0-9]*[1-9] [0-9]*.[0-9]+)|([ 0-9]*[1-9][0-9]*))$
18 負の浮動小数点数:
^-([ 1-9]d*.d*|0.d*[1-9 ]d*)$ または ^(-(([0-9]+.[0-9]*[1-9][0- 9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]* )))$
19 浮動小数点数:
^(-?d+) (.d+)?$ または ^-?([1-9]d*.d*|0.d*[1-9] d*|0?.0+|0)$

2. チェック文字の表現

1 漢字:
^[u4e00-u9fa5]{0,}$
2 英語および数字:
^[A-Za-z0-9]+$ または ^[A-Za-z0-9]{4,40}$
3 長さ 3 ~ 20 のすべての文字:
^.{ 3,20}$
4 26 個の英字で構成される文字列:
^[A-Za-z]+$
5 26 個の大文字の英字で構成される文字列:
^[A-Z]+$
6 26 個の小文字の英字で構成される文字列:
^[a-z]+$
7 数字と 26 個の英字で構成される文字列:
^[A-Za-z0-9]+$
8 文字列数字、26 個の英字、またはアンダースコアで構成される文字列:
^w+$ または ^w{3,20}$
9 中国語、英語、アンダースコアを含む数字:
^[u4E00-u9FA5A-Za-z0-9_] +$
10 中国語、英語、数字(アンダースコアやその他の記号は含まない):
^[u4E00-u9FA5A-Za-z0-9]+$ または ^[u4E00-u9FA5A-Za-z0-9]{2, 20}$
11 には、^%&',;=?$" などの文字を含めて入力できます:
[^%&',;=?$x22]+
12 ~ を含む文字の入力は禁止されています:
[^~x22]+

3. 特別なニーズの表現

1. メールアドレス:
^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
2、ドメイン名:
[ a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62 } )+/.?
3、インターネットURL:
[a-zA-z]+://[^s]* または ^http://([w-]+.)+[w-]+ ( /[w-./?%&=]*)?$
4 、携帯電話番号:
^(13[0-9]|14[5|7]|15[0|1|2| 3| 5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$
5 、電話番号("XXX- XXXXXXX" 、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"、および "XXXXXXXX):
^((d{3,4}-)|d{3.4}-)?d {7 ,8}$
6 国内電話番号(0511-4405222、021-87888822):
d{3}-d{8}|d{4}-d{7}
7、ID 番号:
15 桁または 18 桁の ID カード:
^d{15}|d{18}$
15 桁の ID カード:
^[1-9]d{7}((0d)|(1[ 0-2 ]))(([0|1|2]d)|3[0-1])d{3}$
18 桁の ID カード:
^[1-9]d{5} [1-9 ]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$
8短い ID カード番号 (x で終わる数字、文字):
^([0-9]){7,18}(x|X)?$
または
^d{8,18}|[0- 9x]{8, 18}|[0-9X]{8,18}?$
9. アカウントは合法ですか (文字で始まり、5 ~ 16 バイトが許可され、英数字のアンダースコアが許可されます):
^[a -zA-Z][ a-zA-Z0-9_]{4,15}$
10、パスワード (文字で始まり、長さは 6 ~ 18、文字、数字、アンダースコアのみを使用できます):
^ [a-zA- Z]w{5,17}$
11、強力なパスワード (大文字、小文字、数字の組み合わせが必要、特殊文字は使用不可、長さは 8 ~ 10):
^ (?=.* d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12. 日付形式:
^d{4}-d{1 ,2}-d {1,2}
13. 1 年の 12 か月 (01~09 および 1~12):
^(0?[1-9]|1[0-2])$
14、月の 1 つの 31 日 (01~09 および 1~31):
^((0?[1-9])|((1|2)[0-9])|30|31) $
15、お金の入力形式:
16. 1. 受け入れられるお金の表現形式は 4 つあります: 「10000.00」と「10,000.00」、および「セント」なしの「10000」と「10,000」:
^ [1 -9][0-9]*$
17, 2. これは 0 で始まらない任意の数値を意味しますが、文字「0」は通過しないことも意味するため、次の形式を使用します。
^(0|[1-9][0-9]*)$
18, 3. 0 または 0 で始まらない数値。先頭に負符号を使用することもできます:
^(0| -?[1-9][0-9]*)$
19, 4。これは、0、または負の可能性があり、0 で始まらない数値を意味します。ユーザーに 0 から始めてもらいます。負の符号を変更します。お金を負にすることはできないため、以下に追加する必要があるのは、小数部分です:
^[0-9]+(.[0-9]+)?$
20, 5. 小数点の後に少なくとも 1 桁が必要であることに注意してください。そのため、「10.」は渡されませんが、「10」と「10.2」は渡されます:
^[0-9] ]+(.[0- 9]{2})?$
21. 6. このように、小数点以下 2 桁でなければならないと規定していますが、厳しいと思われる場合は、次のようにしても構いません。これ:
^[0-9]+(.[0-9] {1,2})?$
22, 7. これにより、ユーザーは小数点以下 1 桁だけを書くことができるようになります。ここで、カンマを考慮する必要があります。数値:
^[0-9]{1,3 }(,[0-9]{3})*(.[0-9]{1,2})?$
23、8.1 ~ 3 の数値の後に任意のカンマ + 3 つの数値を続けると、カンマは必須ではなくオプションになります:
^([0-9]+|[0-9]{1,3}(,[0-9] ]{3})*)(.[0-9]{1 ,2})?$
24. 注: これは、次の場合に「+」を「*」に置き換えることができることを忘れないでください。空の文字列が許容されると考えています (奇妙です、なぜですか?) 最後に、関数を使用するときにバックスラッシュを削除する代わりに、よくある間違いがここにあることを忘れないでください
25、xml ファイル:
^([a-zA -Z]+-?)+[a-zA-Z0-9 ]+\.[x| ^x00-xff]
(漢字を含む、文字列の長さ (文字列の長さ) を計算するために使用できます。全角文字は 2 としてカウントされ、ASCII 文字は 1))28 空白行の正規表現: ns*r (空白行の削除に使用できます)

29、HTML の正規表現マークアップ:
<(S*?)[^>]*>.*?|<.* />部分的にしか機能せず、複雑なネストされたタグには依然として無力です)

30. 先頭および末尾の空白文字の正規表現: ^s*|s*$ または ( ^s*)|(s*$) (できる行の先頭と末尾の空白文字 (スペース、タブ、フォーム フィードなどを含む) を削除するために使用されます。非常に便利な表現です)31、Tencent QQ 番号: [1-9][0-9]{ 4,} (Tencent QQ 番号は 10000 から始まります)
32、中国の郵便番号: [1-9]d{5}(?!d) (中国の郵便番号は 6 桁です)

33。 d+.d+.d+.d+ (IP アドレスを抽出するときに便利)

上記は、編集者が紹介した史上最も完全な PHP 正規表現です (携帯電話番号 177-*** を追加する必要があります)。皆様のお役に立てれば幸いです。

関連する推奨事項:

PHP正規表現コレクション

PHP正規表現でよく使用される関数の詳細な説明

メールアドレスを検証するためのPHP正規表現のケーススタディ

以上が最も完全な PHP 正規表現 (history_正規表現)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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