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

PHPでよく使われる正規表現のまとめ

WBOY
WBOYオリジナル
2016-06-20 12:35:49769ブラウズ

1. 正規表現は、Web サイトを構築するときによく使用されます。ここでは、参照および変更のみを目的として説明と例を示します。
2. 負でない整数 (正の整数 +) 0)
3. "^[0-9]*[1-9][0-9]*$" // 正の整数
4. "^((-d+)|(0+ )) $" //非正の整数 (負の整数 + 0)
5. "^-[0-9]*[1-9][0-9]*$" //負の整数
6 " ^-?d+$" //整数
7. "^d+(.d+)?$" //非負の浮動小数点数 (正の浮動小数点数 + 0)
8. "^(([ 0 -9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+ ) |([0-9]*[1-9][0-9]*))$" //正の浮動小数点数
9. "^((-d+(.d+)?)|(0 +( .0+)?))$" //非正の浮動小数点数 (負の浮動小数点数 + 0)
10. "^(-(([0-9]+.[0-9] *[1-9 ][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1 -9][0 -9]*)))$" //負の浮動小数点数
11. "^(-?d+)(.d+)?$" //浮動小数点数
12. " ^[A-Za-z ]+$" // 26 文字の英字からなる文字列
13. "^[A-Z]+$" // 26 文字の大文字からなる文字列
14. "^ [a-z ]+$" // 26 個の小文字の英字で構成される文字列
15. "^[A-Za-z0-9]+$" // 26 個の数字と 26 個の英字で構成される文字列
16 . "^w+$" //数字、26 個の英字、またはアンダースコアで構成される文字列
17. "^[w-]+(.[w-]+)*@[w-] +(.[w] -]+)+$" //メールアドレス
18. "^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+) *))*( ?S*)?$" //url
19. /^(d{2}|d{4})-((0([1-9]{1}))|( 1[1|2 ]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
20 /^(( 0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[ 0|1]) )/(d{2}|d{4})$/ // 月/日/年
21. "^([w-.]+)@(([[0-9 ]{1,3 }.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z ]{2,4 }|[0-9]{1,3})(]?)$" //エミル
22. /^((+?[0-9]{2,4}-[ 0-9]{ 3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?$ / //電話番号
23. “^(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 アドレス
24.
25. 中国語の文字に一致する正規表現: [u4e00-u9fa5]
26. 2 バイト文字 (含む) に一致漢字): [^x00-xff]
27. 空白行に一致する正規表現: n[s| ]*r
28. HTML タグに一致する正規表現: /<(.*)> .*|<(.*) />/
29. 正規表現の先頭および末尾のスペースの一致: (^s*)|(s*$ )
30.メールアドレス: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
31. URL の一致する正規表現: ^[a-zA- z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S* )?$
32. 一致するアカウントは合法ですか(文字で始まり、5 ~ 16 バイトが使用可能、英数字のアンダースコアが使用可能): ^[a-zA-Z][a-zA-Z0-9_]{4,15 }$
33. 一致する国内電話番号: (d{3}-|d{4}-)?(d{8}|d{7})?
34. Tencent QQ 番号の一致: ^[ 1-9]*[1-9][0] -9]*$
35.
36.
37. 正規表現におけるメタ文字とその動作:
38. 次の文字を特殊文字としてマークします。リテラル文字、後方参照、または 8 進エスケープ文字。
40.
41. ^ 入力文字列の先頭と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、^ は 'n' または 'r' の後の位置にも一致します。
42.
43. $ 入力文字列の終了位置と一致します。 RegExp オブジェクトの Multiline プロパティが設定されている場合、$ は 'n' または 'r' の前の位置にも一致します。
44.
45. * 直前の部分式と 0 回以上一致します。
46.
47. + 前の部分式と 1 回以上一致します。 + は {1,} と同等です。
48.
49. 前の部分式と 0 回または 1 回一致します。 ? {0,1} に相当します。
50.
51. {n} n は、特定の回数 n 回一致する非負の整数です。
52.
53. {n,} n は、少なくとも n 回一致する非負の整数です。
54.
55. {n,m} m と n は両方とも非負の整数であり、n 56. 57.? キャラクターが他の制限 (*、+、?、{N}、{n、{n、m}) に従っている場合、マッチ モードは正しく、間違っています。非貪欲モードは検索文字列の可能な限り少ない部分と一致しますが、デフォルトの貪欲モードは検索文字列の可能な限り多くの部分と一致します。
58.
59. . 「n」を除く任意の 1 文字と一致します。 「n」を含む任意の文字と一致するには、「[.n]」のようなパターンを使用します。
60. (パターン) パターンと一致し、この一致を取得します。
61. 62. (?:パターン) パターンに一致しますが、一致結果が得られません。つまり、これは非取得一致であり、ストレージの供給とその後の使用は必要ありません。
63.
64. (?=パターン) 前方参照、文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。
65.
66. (?!pattern) (?=pattern)
67.
68. x|y は x または y と一致します。
69.
70. [xyz] 文字セット。
71.
72. [^xyz] 負の値の文字セット。
73.
74. [a-z] 文字範囲、指定された範囲内の任意の文字と一致します。
75.
76. [^a-z] 負の文字範囲。指定された範囲内にない文字と一致します。
77.
78. b は、単語とスペースの間の位置を示す単語境界に一致します。
79.
80。B は単語以外の境界に一致します。
81.
82. cx は、x で指定された制御文字と一致します。
83.
84. d は数字と一致します。 [0-9]に相当します。
85.
86。D は数字以外の文字と一致します。 [^0-9] と同等。
87.
88. f はフォーム フィードと一致します。 x0c および cL に相当します。
89.
90.n は改行文字と一致します。 x0a および cJ に相当します。
91.
92。r は復帰文字と一致します。 x0d および cM に相当します。
93.
94. s は、スペース、タブ、フォーム フィードなどの空白文字と一致します。 【fnrtv】に相当。
95.
96。S は空白以外の文字に一致します。 [^ fnrtv] に相当します。
97.
98.t はタブ文字と一致します。 x09 および cI に相当します。
99.
100。v は垂直タブ文字と一致します。 x0b および cK に相当します。
101.
102. w はアンダースコアを含む任意の単語文字に一致します。 「[A-Za-z0-9_]」と同等。
103.
104. W は単語以外の文字に一致します。 「[^A-Za-z0-9_]」と同等。
105.
106. xn は n と一致します。n は 16 進数のエスケープ値です。 16 進数のエスケープ値は、正確に 2 桁の長さである必要があります。
107.
108. num は num と一致します。ここで、num は正の整数です。取得した一致への参照。
109.
110. n は 8 進数のエスケープ値または後方参照を示します。 n の前に少なくとも n 個のフェッチされた部分式がある場合、n は後方参照です。それ以外の場合、n が 8 進数 (0 ~ 7) の場合、n は 8 進数のエスケープ値になります。
111.
112. nm は 8 進数のエスケープ値または後方参照を示します。 nm の前に少なくとも nm 個のフェッチされた部分式がある場合、nm は後方参照です。 nm の前に少なくとも n の get がある場合、n は後方参照であり、その後にリテラル m が続きます。前述の条件がどちらも当てはまらず、n と m が両方とも 8 進数 (0 ~ 7) である場合、nm は 8 進数のエスケープ値 nm と一致します。
113.
114. nml n が 8 進数 (0 ~ 3) で、m と l が両方とも 8 進数 (0 ~ 7) の場合、8 進数のエスケープ値 nml と一致します。
115.
116. un は n と一致します。n は 4 桁の 16 進数で表される Unicode 文字です。
117.
118. 漢字に一致する正規表現: [u4e00-u9fa5]
119.
120. 全角文字に一致するもの: [^x00-xff ] >121.
122. 空白行に一致する正規表現:n[s| ]*r
124. HTML タグに一致する正規表現:/<(.* )> /1>|/
125.
126. 先頭と末尾のスペースに一致する正規表現: (^s*)|(s*$)
127. >128. メールアドレスに一致する正規表現:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
129.
130. URL に一致する式: http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
132. 正規表現を使用します。 Web フォームのテキスト ボックスの入力内容を制限するには:
133.
134. 正規表現を使用して中国語のみの入力を制限するには: onkeyup="value=value.replace(/[^u4E00-u9FA5 ]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,'' ))"
135.
136. 正規表現を使用して全角文字のみの入力を制限します: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData(' text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
137.
138. 正規表現のみを使用して制限する 数字を入力できる:onkeyup ="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g, ''))"
139.
140. 正規表現を使用して、入力を数字と英語のみに制限します: onkeyup="value=value.replace(/[W]/g,'' ) "onbeforepaste= "clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
141.
142. === ==== == 一般的に使用される正規表現
148. 2 バイト文字 (漢字を含む) の一致: [^x00-xff]
149.
150. 空白行の一致の正規表現: n[s | ]*r
151.
152. HTML タグに一致する正規表現: /<(.*)>*|<(.*) />/
153.
154. 先頭と末尾のスペースに一致する正規表現: (^s*)|(s*$)
156. IP アドレスに一致する正規表現: /(d+).(d+) .(d+). (d+)/g //
157.
158. メールアドレスに一致する正規表現: w+([-+.]w+)*@w+([-.]w+) ([- .]w+)*
159.
160。URL に一致する正規表現: http://(/[w-]+.)+[w-]+(/[w- ./? %&=]*)?
161.
162. SQL ステートメント: ^(select|drop|delete|update|insert).*$
163.
164. 1.負の整数: ^d+$
165。整数: 3. 正でない整数: ^((-d+)|(0+))$
169.
170。 -[0-9]*[1-9][0- 9]*$
171.
172. 整数: ^-?d+$
174.非負の浮動小数点数: ^d+(.d+)?$
175.
176. 7. 正の浮動小数点数: ^((0-9)+.[0-9]*[1- 9][0-9]*)|([0-9]*[ 1-9][0-9]*.[0-9]+)|([0-9]*[1-9][ 0-9]*))$
177.
178. 8. 非正の浮動小数点数: ^((-d+.d+)?)|(0+(.0+)?)$
179.
180. 9. 負の浮動小数点数: ^(-( (正の浮動小数点数の正規表現)))$
181.182. 10. 英語の文字列: ^[A-Za-z]+$
183. 12. 英語の小文字の文字列: ^[a-z]+$
187.
188. 13. 英語の文字と数字文字列: ^[A-Za-z0-9]+$
189.
190 . 14. 英数字と下線付きの文字列: ^w+$
191.
192. : ^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$
193.
194. URL: ^[a- zA-Z]+://(w+(-w+)*)(.(w+(-- w+)*))*(?s*)?$
または: ^http://[A -Za-z0-9]+.[A-Za-z0-9]+[/=? %-&_~`@[]':+!]*([^<>""])*$
196.
197. 17. 郵便番号: ^[1-9]d{ 5}$
198.
199. 中国語: ^[u0391-uFFE5]+$
200。
201。電話番号: ^(((d{2,3} ))|(d{3}-))?((0d{2,3})|0d{2,3 }-)?[1-9]d{6,7}(-d{1,4} )?$
202.
203. 携帯電話番号: ^((d{2, 3}))|(d{3}-))?13d{9}$
204.
205. 21. 全角文字 (漢字を含む): ^x00-xff
206。
207. 22. 先頭と末尾のスペースの一致: (^s*)|(s*$) (vbscript のようなトリミング関数)
208.
209. HTML タグの一致: <(. *)>.*|<(.*) />
210.
211. 空白行に一致します: n[s| ]*r
🎜>213。 25. 情報内のネットワーク リンクを抽出します: (h|H)(r|R) (e|E)(f|F) *= *('|")?(w|\|/|.) +('|"| *|>)?
214.
215. 26. 情報内のメールアドレスを抽出します: w+([-+.]w+)*@w+([-.]w+ )*.w+([-.]w+)*
216.
217. 27 、情報内の画像リンクを抽出します: (s|S)(r|R)(c|C) *= * ('|")?(w|\|/|.)+('|"| *|> ;)?
218.
219. 情報内の IP アドレスを抽出します。 .(d+).(d+).(d+)
220.
221. 29. 情報内の中国の携帯電話番号を抽出します: (86)*0*13d{9}
222. 🎜>223. 30. 情報から中国の固定電話番号を抽出します: ((d{3,4})|d{ 3,4}-|s)?d{8}
224.
225 . 31. 情報(携帯電話および固定電話を含む)内の中国の電話番号を抽出します: ((d{3,4})| d{3,4}-|s)?d{7,14}
226。
227. 32. 情報内の中国の郵便番号を抽出します: [1-9]{1}(d+){5 }
228.
229. 浮動小数点数 (つまり 10 進数) を抽出します。情報: (-?d*).?d+
230.
231。 34. 情報内の浮動小数点数を抽出します。 Number: (-?d*)(.d+)? .
233. 35. IP: (d+).(d+).(d+).(d+)
234.
235. 36. 電話番号: /^0d{2,3}$ /
236. 237. 37. Tencent QQ 番号: ^[1-9]*[1-9][0-9] *$
238.
239.文字、5 ~ 16 バイト、英数字のアンダースコアを使用可能): ^[a-zA-Z][a-zA-Z0-9_]{ 4,15}$
240.
241. 39. 中国語、英語、数字、下線: ^[u4e00-u9fa5_a-zA-Z0-9]+$


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