ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでよく使用される正規表現のまとめ
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. (?=pattern) 前方参照。文字列一致パターンの先頭にある検索文字列と一致します。これは非フェッチ一致です。つまり、後で使用するために一致をフェッチする必要はありません。
65.
66. (?!パターン) ネガプレビュー、(?=パターン) の反対
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
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( 'テキスト').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. =========よく使われる正規表現
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]*)|([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.
184. 11. 英語の大文字文字列: ^[A-Z]+$
185.
186. 12. 英語の小文字文字列: ^[a-z]+$
187.
188. 13. 英語の文字と数字の文字列: ^[A-Za-z0-9]+$
189.
190. 14. 英数字と下線の文字列: ^w+$
191.
192. 15. メールアドレス: ^[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. テンセント 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]+$