网站首页 > java教程 正文
正则表达式在软件开发中有许多常见应用,以下是一些典型的应用场景以及相应的示例:
数据验证:
在表单提交或数据输入时,可以使用正则表达式来验证输入的数据是否符合要求,比如邮箱、电话号码、身份证号码等格式的验证。
示例:验证邮箱地址
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
文本搜索和替换:
在代码编辑器或文本编辑器中,可以使用正则表达式进行搜索和替换,批量编辑文本内容。比如可以将文本中的特定格式的日期字符串统一替换成另一种格式。
示例:匹配日期格式并替换
(\d{4})-(\d{2})-(\d{2}) -> $2/$3/$1
数据提取:
从字符串中提取需要的信息,比如从日志中提取特定格式的时间戳、从 HTML 中提取链接等。
示例:提取URL中的域名
https?://([^/?#]+)
代码分析:
在编程中,正则表达式可以用于代码分析、解析和处理,比如从代码中提取特定格式的注释信息、解析配置文件等。
示例:匹配Java注释
/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/
URL路由和参数匹配:
在Web开发中,常常需要根据URL进行路由和参数解析,可以使用正则表达式来匹配URL和提取参数。
示例:提取URL中的参数
\?([^=]+)=([^&]+)&?
日志处理:
在日志分析和处理中,可以使用正则表达式来提取特定格式的日志信息、过滤特定条件的日志等。
示例:匹配IP地址
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
这些都是正则表达式在开发中常见的应用场景,正则表达式的灵活性和强大功能使得它成为开发过程中不可或缺的工具之一。然而,在实际使用中,需要注意正则表达式的复杂性和匹配性能,避免过度依赖正则表达式导致代码可读性差和性能问题。
1、身份证号
^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
2、港澳居民来往内地通行证
^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$
3、微信号
^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$
4、弱密码
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 大小写字母+数字 组合 长度在 8-10 之间。
^[0-9a-zA-Z\u4E00-\uFA29]*$ 数字字母中文
5、强密码
^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$ 最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符。
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*(.)\1{2})^.{8,16}$ 相同字符不能出现3次,至少8个,至多16个字符组成,包含一个小写字母,一个大写字母,和一个数字
6、日期(YYYY-MM-DD 格式)
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[01])$
7、手机号
^1[34578]\d{9}$
8、32位MD5
^[a-f0-9]{32}$
未完待续,喜欢的点个关注 谢谢。
猜你喜欢
- 2024-11-16 String.replaceAll方法,正则妙用
- 2024-11-16 348.C# 中的正则表达式断言:精确匹配的秘诀
- 2024-11-16 《MySQL 入门教程》第 09 篇 字符串模式匹配
- 2024-11-16 mysql正则匹配中文时存在的问题(mysql 正则匹配)
- 2024-11-16 技术趣讲 | 60 分钟搞懂「正则表达式」
- 2024-11-16 PHP 正则表达式匹配中文问题(php正则表达式匹配字符串)
- 2024-11-16 JZ-052-正则表达式匹配(正则表达式 匹配?)
- 2024-11-16 Nginx Location深入了解匹配优先级的秘密#java面试
- 2024-11-16 PHP正则表达式核心技术完全详解 第7节 数组元素正则匹配
- 2024-11-16 你知道python正则表达式如何跨行匹配吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)