ホームページ  >  記事  >  php教程  >  PHPでよく使われる正規表現のまとめ

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

大家讲道理
大家讲道理オリジナル
2016-11-08 13:41:20898ブラウズ

1. 正規表現は、Web サイトを構築するときによく使用されます。参考および変更のみを目的として、いくつかの説明と例を示します。
2. "^d+$" //非負の整数 (正の整数 + 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文字からなる文字列
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. 全角文字 (中国語を含む) の一致: [^x00-xff]
27. 空白行の一致 正規表現: n[s| ]*r
28. HTML タグに一致する正規表現: /.*1>|/
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.
39. 次の文字を特殊文字、またはプリミティブエスケープ文字、または後方参照、または 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. (?:pattern) はパターンに一致しますが、一致結果を取得しません。これは、これは一致を取得できず、後で使用するために保存されないことを意味します。
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. 一致する 2 バイト文字 (漢字を含む): [^x00-xff]
121.
122. 一致する正規表現空行: n[s| ]*r
123.
124. HTML タグに一致する正規表現: /.*1>|/
125.
126. 先頭および末尾のスペースに一致する正規表現: (^s* )|(s*$)
127.
128. メールアドレスに一致する正規表現: w+([-+.]w+)*@w+([-.]w+)*.w+([- .]w+)*
129.
130. URL に一致する正規表現: http://([w-]+.)+[w-]+(/[w- ./?%&=]* )?
131.
132. Web フォームのテキスト ボックスの入力内容を制限するための正規表現:
133.
134. 使用する 正規表現の制限は中国語でのみ入力できます: onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
135.
136. Enter のみを制限するには正規表現を使用します全角文字: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
137.
138. Number のみを制限するには正規表現を使用します入力の 単語: 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. ======== =一般的に使用される正規表現
143.
144. 145.
146. 漢字に一致する正規表現: [u4e00-u9fa5]
147.
148. 全角文字 (漢字を含む) に一致する: [^x00 -xff ]
149.
150. 空白行に一致する正規表現: n[s| ]*r
151.
152. HTML タグに一致する正規表現: /
.*|1>/ 153.
154. 正規表現先頭と末尾のスペースの一致: (^s*)|(s*$)
155.
156. IP アドレスの一致する正規表現: /(d+).(d+).(d+).(d+ )/g //
157.
158. 正規表現によるメールアドレスのマッチング: w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
159.
160. 正規表現によるマッチングURL: http://(/[w-]+.)+[w-]+(/[w- ./?%&=]*)?
161.
162. SQL ステートメント: ^(select|drop |delete|create|update|insert).*$
163.
164. 1. 負でない整数: ^d+$
165.
166. 2. 正の整数: ^ [0-9]*[1-9 ][0-9]*$
167.
168. 3. 正でない整数: ^((-d+)|(0+))$
169.
170. 4 、負の整数: ^-[0- 9]*[1-9][0-9]*$
171.
172. 5. 整数: ^-?d+$
173.
174. 6. 非負の浮動小数点: ^d+(.d+) ?$
175.
176. 7. 正の浮動小数点数: ^((0-9)+.[0-9]*[1-9][0-9]*)| [1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$
177 .
178. 非-正の浮動小数点数: ^((-d+.d+)?)|(0+(.0+)?))$
179.
180. 9. 負の浮動小数点数: ^(-( (正の浮動小数点数)正規表現)))$
181.
182. 10. 英語の文字列: ^[A-Za-z]+$
183.
184. 11. 英語の大文字の文字列: ^[A-Z]+$
185.
186 12. 英語の小文字文字列: ^[a-z]+$
187.
188. 13. 英字と数字の文字列: ^[A-Za-z0-9]+$
189.
190. 14. 英数字と下線付きの文字列: ^w+$
191.
192. 15. E -メールアドレス:^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$
193.
194. 16. URL: ^[a-zA -Z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$
195. または: ^http://[A-Za-z0 -9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^""])*$
196.
197. 17 、郵便番号: ^[1-9]d{5}$
198.
199. 18. 中国語: ^[u0391-uFFE5]+$
200.
201. 19. 電話番号: ^(((d { 2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d { 1,4})?$
202.
203. 20. 携帯電話番号: ^(((d{2,3}))|(d{3}-))?13d{9}$
204.
205 . 21. ダブルバイト文字 (漢字を含む): ^x00-xff
206.
207. 22. 先頭と末尾のスペースを一致させる: (^s*)|(s*$) (vbscript のようなトリム関数)
208.
209. 23. HTML タグの一致: .*1>|
210.
211. 24. 空白行の一致: n[s| ]*r
212.
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. 28. 情報内の IP アドレスを抽出します: (d+).(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. 33. 浮動小数点を抽出します情報内の数値 (つまり 10 進数) (-?d*).?d+
230.
231. 34. 情報内の任意の数値を抽出します: (-?d*)(.d+)? 232.
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. 38. アカウント番号 (文字で始まり、5 ~ 16 バイトを使用可能、英数字のアンダースコアを使用可能): ^ [a-zA-Z][a- zA-Z0-9_]{4,15}$
240.
241. 39. 中国語、英語、数字、下線: ^[u4e00-u9fa5_a-zA-Z0-9] +$

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