正则表达式
正则表达式
正则表达式是一个字符串,用来描述匹配一个字符串集合的模式,可以使用正则表达式来匹配、替换和拆分字符串
匹配字符串
我们先来看一下
类中的 方法,它可以判断字符串 和字符串 是否匹配下面两个语句的结果都为 :
"java".matches("java"); // true "java".equals("java"); // true
在上面的样例中,
方法匹配了一个固定的字符串,但是实际上 方法还可以匹配符合一个模式的字符串集,例如:
"java is good".matches("java.*"); // true "java are you".matches("java.*"); // true "javacanyou".matches("java.*"); // true
样例中的“java.*”是一个正则表达式,他描述了一个字符串模式:以java为前缀,后面跟着若干个字符串(可能是0个),“.*”代表匹配0或任意多个字符
正则表达式语法
正则表达式由字面值字符和特殊字符组成
注意事项:
- 单词字符可以是任何字母、数字或者下划线字符,即\w 等价于
- 量词符:* + ? {n} {n,} {n,m},用于确定量词符前面的模式串会重复多少次
- *:代表前面的模式串出现任意次(包括0)
- +:代表前面的模式串至少出现1次
- ?:代表前面的模式串只能出现0次或1次
- {n}:代表前面的模式串只能出现n次
- {n,}:代表前面的模式串至少出现n次
- {n,m}:代表前面的模式串只能出现n次到m次之间
- 不要在重复量词符中使用空白
- 可以利用括号将模式串进行分组
- .*:代表任意字符串
替换和拆分字符串
除了
方法, 类也包含 方法,用于替换和拆分字符串
str.replaceAll(regex,String s); // 替换str中所有的能够匹配模式串的子串为字符串s str.replaceFirst(regex,String s); // 替换str中第一个能够匹配模式串的子串为字符串s String tokens = str.spict(regex,limit); //代表将字符串str以模式串为分隔符进行分割,limit确定匹配分割符的次数(分割的次数),默认贪心匹配,匹配尽量多的分隔符,如果limit>1,代表最多匹配limit-1次
注意:
- 所有的量词符匹配时都是贪心的,他们会尽可能多匹配,但是我们可以在其后面添加问号来使得量词符变得懒惰,也就意味着只要第一次匹配成功就退出匹配
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!