### PHP常用正则表达式汇总 #### 正则表达式概览 正则表达式是进行文本模式匹配的强大工具,在编程领域尤其是Web开发中极为常见。本文将对一系列常用的PHP正则表达式进行汇总和解释,帮助开发者更好地理解和运用这些模式。 #### 1. 数字匹配 - **"^\\d+$"**:匹配由一个或多个数字组成的字符串。 - **"^[0-9]*[1-9][0-9]*$"**:匹配非零的正整数。 - **"^((\\-\\d+)|(0+))$"**:匹配任何整数(包括负数和零)。 - **"^-[0-9]*[1-9][0-9]*$"**:匹配负整数。 - **"^\\-?\\d+$"**:匹配任意整数(正数、负数或零)。 - **"^\\d+(\\.\\d+)?$"**:匹配任意正数,包括小数。 - **"^(([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-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"**:匹配非零负数,支持整数和小数。 - **"^(-?\\d+)(\\.\\d+)?$"**:匹配任意数,包括整数和小数,支持负数。 #### 2. 字符串匹配 - **"^[A-Za-z]+$"**:匹配仅包含大写和小写字母的字符串。 - **"^[A-Z]+$"**:匹配仅包含大写字母的字符串。 - **"^[a-z]+$"**:匹配仅包含小写字母的字符串。 - **"^[A-Za-z0-9]+$"**:匹配字母和数字的组合。 - **"^\\w+$"**:匹配字母、数字或下划线的组合。 #### 3. 邮箱与URL验证 - **"^\\w+(-\\w+)*(@\\w+([-\\w+]*))?(\\.[\\w+(-\\w+)]+)+$"**:验证标准电子邮件地址格式。 - **"^([a-zA-Z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"**:验证URL格式。 - **"^([w-.]+)@(((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"**:另一种邮箱格式验证。 - **"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"**:更宽松的邮箱验证。 #### 4. 日期格式 - **"^(\\d{2}|\\d{4})-(0(0[1-9]|1[0-2]))-((0[1-9]|[1-2][0-9]|3[0-1]))$"**:验证YYYY-MM-DD格式的日期。 - **"^(0(0[1-9]|1[0-2]))/(0[1-9]|[1-2][0-9]|3[0-1])/(\\d{2}|\\d{4})$"**:验证MM/DD/YYYY或MM/DD/YY格式的日期。 #### 5. IP地址与电话号码 - **"^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"**:验证IPv4地址格式。 - **"^((\\+?[0-9]{2,4}\\-[0-9]{3,4}\\-)|([0-9]{3,4}\\-))?([0-9]{7,8})(\\-[0-9]+)?$"**:验证国际或国内电话号码格式。 - **"(\d{3}-|\d{4}-)?(\d{8}|\d{7})?"**:验证国内固定电话号码格式。 #### 6. 其他应用 - **"[\u4e00-\u9fa5]"**:匹配中文字符。 - **"^[a-zA-Z][a-zA-Z0-9_]{4,15}$"**:验证用户名格式,要求以字母开头,长度为5到16位。 - **"^[1-9]*[1-9][0-9]*$"**:验证非零的自然数(用于QQ号等)。 - **"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"**:另一种URL验证格式。 - **"^\s*$"**:匹配空字符串或只包含空白字符的字符串。 - **"<(.*)>.*<\/\\1>|<(.*)\/>"**:验证HTML标签格式。 - **"(^\s*)|(\s*$)"**:匹配字符串首尾的空白字符。 #### 7. 正则特殊符号 - **"^"**:匹配输入字符串的起始位置。 - **"$"**:匹配输入字符串的结束位置。 - **"*"**:匹配前面的子表达式零次或多次。 - **"+"**:匹配前面的子表达式一次或多次。 - **"?"**:匹配前面的子表达式零次或一次。 - **"{n}"**:精确地匹配{n}次。 - **"{n,}"**:匹配{n}次或更多次。 - **"{n,m}"**:至少匹配{n}次且最多匹配{m}次。 - **"?"**:当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。 - **"."**:匹配除换行符外的任何单个字符。 - **"(pattern)"**:匹配 pattern 并获取这一匹配。 - **"(?:pattern)"**:匹配 pattern 但不获取匹配结果,即不向后传递所获取的值。 - **"(?=pattern)"**:正向预查,在任何匹配 pattern 的字符串开始前匹配查找字符串。 - **"(?!pattern)"**:反向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。 - **"x|y"**:匹配 x 或 y。 - **"[xyz]"**:匹配 "x" 或 "y" 或 "z"。 - **"[^xyz]"**:匹配除了 "x"、"y" 和 "z" 之外的任何字符。 - **"[a-z]"**:匹配 "a" 到 "z" 范围内的任何小写字母。 以上列出的正则表达式覆盖了多种应用场景,包括基本的数字验证、字符串匹配、邮箱和URL验证、日期格式验证以及IP地址和电话号码的格式验证等。掌握这些正则表达式的用法对于PHP开发者来说是非常有用的技能,能够大大提高代码的灵活性和可维护性。



























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-]+)+$" //email地址
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})(]?)$" //Emil
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. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
32. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
33. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
34. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
35.
36.
37. 元字符及其在正则表达式上下文中的行为:
38.
39. \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
40.
41. ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
42.
43. $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
44.
45. * 匹配前面的子表达式零次或多次。
46.
47. + 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
48.
49. ? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
50.
51. {n} n 是一个非负整数,匹配确定的n 次。
52.
53. {n,} n 是一个非负整数,至少匹配n 次。
54.
55. {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
56.
57. ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
58.
59. . 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
60. (pattern) 匹配pattern 并获取这一匹配。
剩余8页未读,继续阅读


- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2020年第三季度网站自查自评报告.docx
- 电气自动化专业建设十三五规划.doc
- 互联网广告不能一键关闭怎么处罚?.doc
- 电子商务师考试试题及答案.docx
- 学校校园网络组建方案.doc
- 国家开发银行(贵州省分行)国家开发银行贵州省分行助学贷款毕业学生诚信网络答题试卷(202112141.pdf
- BP人工神经网络的基本原理模型与实例.pptx
- 国家开放大学电大专科《网络信息编辑》期末试题标准题库.docx
- 软件公司工作总结.doc
- 手机软件自动化测试介绍.ppt
- 网络研修心得体会.doc
- 随机选择问题算法说明.pdf
- 软件工程导论-住房管理系统-实验指导.doc
- 项目管理及软件测试实验指导书.doc
- 基于单片机的红外测距系统设计开题报告.doc
- 广东省干部培训网络学院-2类-社会主义中国化的历程和发展方向--考试-答案-(90分).doc


