java 正则里分组的问题 Pattern p = Pattern.compile("f(.+?)k"); .+? 合起来是啥意思啊
还有 正则表达式里的分组是啥意思啊 能举个例子讲讲吗
------解决思路----------------------
如果用\本身是java的转义符,如果只写\d 这样是把d转义的意思, 我需要先用java \ 将 \ 转义。 也就是得到\d 这样正则才是正确的
------解决思路----------------------
哦 明白了 就是说JAVA里面要转义 一个特殊意义的字符 必须要两个反斜杠 是这个意思吧 比如 谢谢 很清晰啊 "(RMB
分组有时候还是蛮好用的, 给你举个例子
String str = "RMB1212
------解决思路----------------------
456";
有些个财务报表多用字符串拼接, 上面表示了 货币类型 (RMB) 和两个数值 用
------解决思路----------------------
分开的。
这个可以用分组很方便的取出这3个属性。
Pattern pattern = Pattern.compile("(RMB
------解决思路----------------------
USD)(\\d+)(\\
------解决思路----------------------
)(\\d)");
Matcher m = pattern.matcher(str);
boolean matched = m.find();
if (matched) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
System.out.println(m.group(4));
}
正则里面每个()为一个分组 可以通过group()传入下标获取不通分组的匹配结果
上面的打印为
RMB
1212
------解决思路----------------------
4
------解决思路----------------------
USD)(\\d+)(\\
------解决思路----------------------
)(\\d)" 为啥都用两个\ \\d+ 这个第一个\是转义 \d 因为\d是个整体 那\\
------解决思路----------------------
这里为啥两个反斜杠 直接一个反斜杠转义
------解决思路----------------------
这样不行吗 能指点下嘛
如果用\本身是java的转义符,如果只写\d 这样是把d转义的意思, 我需要先用java \ 将 \ 转义。 也就是得到\d 这样正则才是正确的
------解决思路----------------------
是特殊字符 所以用两个反斜杠转义它 \\
------解决思路----------------------
这样才是正确的转义 是这样理解的吧
对