ホームページ  >  記事  >  バックエンド開発  >  PHPでよく使われる正規表現

PHPでよく使われる正規表現

silencement
silencement転載
2020-01-30 22:30:154265ブラウズ

PHPでよく使われる正規表現

正規表現は、Web サイトを作成するときによく使用されます。ここでは、参照および変更のみを目的として、いくつかの説明と例を示します:

数字の照合

"^\d $" //非負の整数 (正の整数 0)

"^[0-9]*[1-9][0-9] *$ " //正の整数

"^((-\d )|(0 ))$" //非正の整数(負の整数0)

"^-[0- 9 ]*[1-9][0-9]*$" // 負の整数

"^-?\d $" // 整数

"^\d (\. \ d )?$" //非負の浮動小数点数 (正の浮動小数点数 0)

"^(([0-9] \.[0-9]*[1-9][0 -9 ]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9] *) )$" //正の浮動小数点数

"^((-\d (\.\d )?)|(0 (\.0 )?))$" //非正浮動小数点数 (負の浮動小数点数 0)

"^((([0-9] \.[0-9]*[1-9][0-9]*)|([ 0-9]*[ 1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9]*)))$" //負の浮動小数点数

"^(-?\d )(\.\d )?$" //浮動小数点数

一致文字

"^[A -Za-z] $" / /英大文字26文字からなる文字列

"^[A-Z] $" //英大文字26文字からなる文字列

"^[ a-z] $" / /英小文字26文字からなる文字列

"^[A-Za-z0-9] $" //数字と英文字26文字からなる文字列

"^\w $" //数字、26 個の英字、またはアンダースコアで構成される文字列

一致例

"^[\w-] (\.[\w-] )* @[\w-] (\.[\w-] ) $" //メールアドレス

"^[a-zA-z] ://(\w (-\w )* )( \.(\w (-\w )*))*(\?\S*)?$" //url

/^(d{2}|d{4} )- ((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0 |1 ]))$/ // 年-月-日

/^((0([1-9]{1}))|(1[1 |2 ]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年

"^([w-.] )@(([[0-9]{1,3}.[0-9]{ 1, 3}.[0-9]{1,3}.)|(([w-] .) ))([a-zA-Z]{2,4}|[0-9]{1, 3} )(]?)$" //エミル

/^((\ ?[0-9]{2,4}\-[0-9] {3 ,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9] )?$/ / /電話

#"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1 ,2 }|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d {1 ,2}|1dd|2[0-4]d|25[0-5])$" //IP アドレス

その他の一致

#中国語の文字と一致する正規表現: [\u4e00-\u9fa5]

# 2 バイト文字 ((内) 内の中国語文字を含む) と一致します。 : [^\x00-\xff]


空行に一致する正規表現:\n[\s| ]*\r


HTML タグに一致する正規表現: /<(.*)>.*<\ 1="">|<(.*)>/


先頭および末尾のスペースに一致する正規表現: (^\s*)|(\s*$)


電子メールに一致するアドレスの正規表現: \ w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*


URL に一致する正規表現: ^[a-zA-z] ://(\\w (-\\w )*)(\\.(\\w (-\\ w )*))*(\\? \\S*)?$


一致するアカウントは合法ですか (文字で始まり、5 ~ 16 バイトが許可され、英数字が許可されます。下線): ^[a-zA- Z][a-zA-Z0-9_]{4,15}$


国内電話番号の一致: (\d{3}- |\d{4}-)? (\d{8}|\d{7})?

Tencent QQ 番号と一致します: ^[1-9]*[1-9][0-9 ]*$

正規表現のコンテキストでのメタ文字とその動作:

\ 次の文字を特殊文字、リテラル文字、後方参照、または 8 進エスケープ文字としてマークします。

#^ 入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は '\n' または '\r' の後の位置にも一致します。

$ 入力文字列の末尾と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は '\n' または '\r' の前の位置にも一致します。

* 前の部分式と 0 回以上一致します。

前の部分式と 1 回以上一致します。 {1,} と同等。

? 直前の部分式と 0 回または 1 回一致します。 ? {0,1} に相当します。

{n} n は、特定の回数 n 回一致する非負の整数です。

{n,} n は負ではない整数で、少なくとも n 回一致します。

{n,m} m と n は両方とも非負の整数であり、n ? この文字が他の修飾子 (*、 、 ?、 {n}、 {n,}、 {n,m}) のすぐ後に続く場合、一致パターンは非貪欲です。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列の可能な限り多くの部分と一致します。

.「\n」を除く任意の 1 文字と一致します。 「\n」を含む任意の文字と一致するには、「[.\n]」のようなパターンを使用します。

(パターン) パターンに一致し、この一致を取得します。

(?:pattern) はパターンに一致しますが、一致結果は取得されません。これは、これは非取得一致であり、後で使用するために保存されないことを意味します。

(?=パターン) 前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。

(?!pattern) (?=pattern) の反対の負の検索。

x|y は x または y と一致します。

[xyz] 文字セット。

[^xyz] 負の文字セット。

[a-z] 文字範囲。指定された範囲内の任意の文字と一致します。

[^a-z] 負の文字範囲。指定された範囲内にない任意の文字と一致します。

\b は、単語とスペースの間の位置を指す単語境界に一致します。

\B 単語以外の境界と一致します。

\cx は、x で指定された制御文字と一致します。

\d は数字と一致します。 [0-9]に相当します。

\D は数字以外の文字と一致します。 [^0-9] に相当します。

\f はフォーム フィード文字と一致します。 \x0c および \cL に相当します。

\n は改行文字と一致します。 \x0a および \cJ に相当します。

\r は復帰文字と一致します。 \x0d および \cM に相当します。

\s は、スペース、タブ、フォーム フィードなどを含む任意の空白文字と一致します。 [ \f\n\r\t\v] と同等。

\S は空白以外の文字に一致します。 [^ \f\n\r\t\v] と同等。

\t はタブ文字と一致します。 \x09 および \cI に相当します。

\v は垂直タブ文字と一致します。 \x0b および \cK に相当します。

\w アンダースコアを含む任意の単語文字と一致します。 「[A-Za-z0-9_]」と同等。

\W は、単語以外の文字に一致します。 「[^A-Za-z0-9_]」と同等。

\xn は n と一致します。n は 16 進数のエスケープ値です。 16 進エスケープ値は正確に 2 桁の長さである必要があります。

\num は num と一致します。ここで、num は正の整数です。取得した一致への参照。

\n 8 進エスケープ値または後方参照を識別します。 \n の前に少なくとも n 個のフェッチされた部分式がある場合、n は後方参照です。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ値になります。

\nm 8 進エスケープ値または後方参照を識別します。 \nm の前に少なくとも nm 個のフェッチされた部分式がある場合、nm は後方参照です。 \nm の前に少なくとも n の get がある場合、n は後方参照であり、その後にリテラル m が続きます。前の条件がどちらも true でない場合、n と m が両方とも 8 進数 (0 ~ 7) であれば、\nm は 8 進数のエスケープ値 nm と一致します。

\nml n が 8 進数 (0 ~ 3) で、m と l が両方とも 8 進数 (0 ~ 7) の場合、8 進数のエスケープ値 nml と一致します。

\un は n と一致します。n は 4 桁の 16 進数で表される Unicode 文字です。

中国語の文字に一致する正規表現: [u4e00-u9fa5]

一致する 2 バイト文字 (中国語の文字を含む): [^x00-xff]

# Regular空行に一致する式: n[s| ]*r

HTML タグに一致する正規表現: /<(.*)>. *|<(.* )>/

先頭と末尾のスペースに一致する正規表現: (^s*)|(s*$)

電子メール アドレスに一致する正規表現: w ([- .]w )*@w ([-.]w )*.w ([-.]w )*

URL に一致する正規表現: http://([w-] .) [w-] (/[w- ./?%&=]*)?

正規表現を使用して、Web フォームのテキスト ボックスの入力内容を制限します:

正規表現を使用して、中国語を入力できることのみを制限します: onkeyup="value= value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/ [^u4E00-u9FA5]/g, ''))"

正規表現を使用して全角文字のみの入力を制限します: onkeyup="value=value.replace(/ [^uFF00-uFFFF] /g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"

正規表現を使用して入力を数値に制限します: onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData .setData('text', ClipboardData.getData('text').replace(/[^d]/g,''))"

正規表現を使用する 数字と英語のみを入力できます: onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace( /[^d]/g, ''))"

一般的に使用される通常の例

1. 負でない整数: ^\d $

2. 正の整数: ^[0-9]*[1-9][0-9]*$

3. 非正整数:^((-\d )|(0 ))$

4、負の整数: ^-[0-9]*[1-9][0 - 9]*$

5. 整数: ^-?\d $

6. 非負浮動小数点数:^\d (\.\d )?$

7、正の浮動小数点数: ^((0-9) \.[0-9 ]*[1 -9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[ 1-9] [0-9]*))$

8. 非正の浮動小数点数: ^((-\d \.\d )?) |(0 (\. 0 )?))$

9. 負の浮動小数点数: ^(-((正の浮動小数点数正規表現)))$

10. 英語の文字列: ^[A-Za-z] $

##11. 英語の大文字の文字列: ^[ A-Z] $

12. 英語の小文字の文字列: ^[a-z] $

13. 英語の文字列: ^[A-Za -z0-9] $

14. 英数字と下線付きの文字列: ^\w $

#15. 電子メール アドレス: ^[\w-] (\.[\w-] )*@[\w-] (\.[\w-] ) $

#16. URL: ^[a-zA-Z] ://(\w (-\w )*)(\.(\w (-\w )*))*(\?\s *)? $


または: ^http:\/\/[A-Za-z0-9] \.[A-Za-z0-9] [\ /=\ ?%\-&_~`@[\]\': !]*([^<>\"\"])*$


##17 、ポストコーディング: ^[1-9]\d{5}$


18、中国語: ^[\u0391-\uFFE5] $


19. 電話番号: ^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2, 3} \)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$


20. 携帯電話番号: ^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$


21. 全角文字 (漢字を含む): ^\x00-\xff


22. 先頭と末尾の一致スペース: (^ \s*)|(\s*$) (vbscript のようなトリム関数)


23. HTML タグに一致: <(.*)> .* <\ 1="">|<(.*)>


##24. 空行と一致します: \n[\s| ]*\r


25. 情報内のネットワーク リンクを抽出します: (h|H)(r|R)(e|E)(f|F) *= *('| " )?(\w|\\|\/|\.) ('|"| *|>)?


26.情報: \w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*


27. 情報内の画像リンクを抽出します: (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.) ('| "| *|>)?


28. 情報内の IP アドレスを抽出します: (\d )\.(\d )\.(\ d )\. (\d )


29. 情報内の中国の携帯電話番号を抽出します: (86)*0*13\d{9}


30. 情報から中国の固定電話番号を抽出します: (\(\d{3,4}\)|\d{3,4}-|\s)? \d{8}


31. 情報 (携帯電話と固定電話を含む) 内の中国の電話番号を抽出します: (\(\d{3,4}\)| \d{3,4} -|\s)?\d{7,14}


32. 情報内の中国の郵便番号を抽出します: [1-9] ]{1}(\d ) {5}


33. 情報内の浮動小数点数 (つまり、10 進数) を抽出します: (-?\d*)\.? \d


34. 情報内の任意の数値を抽出します: (-?\d*)(\.\d )?


35. IP: (\d )\.(\d )\.(\d )\.(\d )


36、電話エリアコード: /^0\d{2, 3}$/


37、テンセント QQ 番号: ^[1-9]*[1-9][0- 9]*$


38. アカウント番号 (文字で始まり、5 ~ 16 バイト、英数字のアンダースコアを使用可能): ^[a-zA-Z][a -zA-Z0-9_]{4,15 }$

##39、中国語、英語、数字、下線: ^[\u4e00-\u9fa5_a-zA-Z0-9 ] $

##追加

中国語の文字に一致する正規表現: [\u4e00-\u9fa5]

2 バイト文字 (漢字を含む) に一致します: [^\x00-\xff]

空白に一致する正規表現行:\n[\ s| ]*\r

HTML タグに一致する正規表現: /<(.*)>.*<\ 1=" ">| <(.*)>/

先頭および末尾のスペースに一致する正規表現: (^\s*)|(\s*$)

IP アドレスに一致する正規表現: /(\ d ) \.(\d )\.(\d )\.(\d )/g //

電子メール アドレスに一致する正規表現:\w ( [- .] \w )*@\w ([-.]\w )*\.\w ([-.]\w )*

URL の一致 URL の正規表現: http://(/[\w-] \.) [\w-] (/[\w- ./?%&=]*)?

sql ステートメント: ^(select|drop|delete|create|update|insert).*$

以上がPHPでよく使われる正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はwww.liqingbo.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。