Java正则表达式
- 1. 匹配数字(包含负数、小数)
- 2. 匹配不是纯数字和纯字母且需要8位以上的密码
- 3. 密码:字母、数字、符号(_-+*.,!@#符号可自定义)三选二
- 4. 密码:必须包含大写、小写、数字、符号(_-+*.,!@#符号可自定义)四种
- 5. 匹配年月日(除2月不正常)如:2023-01-01 2023 01 01 2023/01/01 2023,01,01
- 6. 匹配IP地址 IPV4
- 7. 匹配手机号码
- 8. 身份证(18位,含19xx、20xx、21xx年及相应2月29)
- 9. 匹配网页中图片链接(格式根据需要修改)
- 10. 匹配不包含 feature/ 和 bug 的字符串
- 11. 匹配文本(不包含符号)
- 12. 匹配字符串 [以AA或BB或CC开头(包含AA、BB、CC),并且以DD或FF结束(包含DD、FF)]
- 13. 匹配 issue 中的文件和图片
- 常用的在线测试工具
积累了一些工作中用到的正则表达式,只在 Java 语言中测试过,少数在 Python 语言。可参考,欢迎讨论、修正。
1. 匹配数字(包含负数、小数)
^[-|+]?[0-9]+.?[0-9]*$
2. 匹配不是纯数字和纯字母且需要8位以上的密码
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$
3. 密码:字母、数字、符号(_-+*.,!@#符号可自定义)三选二
^(?![0-9]+$)(?![a-zA-Z]+$)(?![_\-*+.,!@#]+$)[0-9a-zA-Z_\-+*.,!@#]{8,20}$
4. 密码:必须包含大写、小写、数字、符号(_-+*.,!@#符号可自定义)四种
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[_\-*+.,!@#])[0-9a-zA-Z_\-+*.,!@#]{8,20}$
5. 匹配年月日(除2月不正常)如:2023-01-01 2023 01 01 2023/01/01 2023,01,01
\d{4}.?(((0[13578]|1[02]).?(0[1-9]|([12]\d)|3[0-1]).?)|(02.?([01]\d|2[0-8]))|((0[469]|11).?([0-2]\d|30)))(?=\s|\|)
6. 匹配IP地址 IPV4
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}
7. 匹配手机号码
^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$
8. 身份证(18位,含19xx、20xx、21xx年及相应2月29)
^[1-9][0-7]\d{4}(((19|20|21)\d{2}(((0[13578]|1[02])(0[1-9]|([12]\d)|3[0-1]))|(02([01]\d|2[0-8]))|((0[469]|11)([0-2]\d|30))))|(((19(09|17|28|47))|(20(04|23|42|99))|(21(37|86)))0229))\d{3}(\d|X|x)$
9. 匹配网页中图片链接(格式根据需要修改)
(?<=<img.{0,1024}src=\")(https?)://.*?[.](jpe?g|png|gif)
10. 匹配不包含 feature/ 和 bug 的字符串
^(?!.*feature/|.*bug).*$
11. 匹配文本(不包含符号)
\s*[一-龥\w]*\s*
12. 匹配字符串 [以AA或BB或CC开头(包含AA、BB、CC),并且以DD或FF结束(包含DD、FF)]
(?=AA|BB|CC)(.|\n)+?(DD|FF)
13. 匹配 issue 中的文件和图片
(?<=!?\[.+\]\().+?(\.(png|xlsx|xls|docx|doc|pdf|vsdx|drawio))
常用的在线测试工具
- regex101
- jsons.cn
- oschina.net