正则匹配各括号的作用
参考: https://www.cnblogs.com/zengguowang/p/7779699.html
一、小括号()、中括号[]、大括号的区别
1>. 小括号():匹配小括号内的字符串,可以是一个,也可以是多个,常跟“|”(或)符号搭配使用,是多选结构的
示例1:string name = "way2014"; regex:(way|zgw) result:结果是可以匹配出way的,因为是多选结构,小括号是匹配字符串的
示例2:string text = "123456789"; regex:(0-9) result:结果是什么都匹配不到的,它只匹配字符串"0-9"而不是匹配数字, [0-9]这个字符组才是匹配0-9的数字
2>.中括号[]:匹配字符组内的字符,比如咱们常用的[0-9a-zA-Z.?!]等,在[]内的字符都是字符,不是元字符,比如“0-9”、“a-z”这中间的“-”就是连接符号,表示范围的元字符,如果写成[-!?(]这样的话,就是普通字符
示例1: string text = "1234567890"; regex:[0-9] result:结果是可以匹配出字符串text内的任意数字了,像上边的【或符号“|”在字符组内就是一个普通字符】
示例2:string text = "a|e|s|v"; 当regex为[a|e|s] 时,result:结果就是匹配字符a、e、|、s 四个字符;当regex为(a|e|s)时,就是匹配a、e、s三个字符的随意一个,三个中的任意一个,这是的|是元字符。
3>.大括号{}:匹配次数,匹配在它之前表达式匹配出来的元素出现的次数,{n}出现n次、{n,}匹配最少出现n次、{n,m}匹配最少出现n次,最多出现m次
** 一句话辅助记忆:括号越大数据越抽象**
注意: "|" 不在中括号内使用,一般只在小括号内适用
text = "a|e|s|v";
String regexStr = "[a|e|s]"; //
Pattern p = Pattern.compile(regexStr);
Matcher m = p.matcher(text);
while(m.find()) {
System.out.println(m.group()); // 找到6次, 输出[a、|、e、|、s、|]
}
regexStr = "[aes]"; // 找到3次, 输出[a、e、s]
regexStr = "(a|e|s)"; // 找到3次, 输出[a、e、s]
text = "长度119";
regexStr = "[1-9]"; //找到3次, 输出[1、1、9]
regexStr = "[1-9]+"; //找到1次, 输出[119]. "+"既匹配多次, 等价 "[1-9]\\d+";
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2018-03-27 CNN&pooling的几种形式 待
2018-03-27 python 路径相关