And*_*lko 2 java regex lookbehind
我写了一个简单的正则表达式
String s = "#!key1 #!compound.key2 #!super.compound.key3";
Matcher matcher = Pattern.compile("(?<=#!)(\\w+\\.*\\w+)+").matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)
导致
key1
compound.key2
super.compound
Run Code Online (Sandbox Code Playgroud)
我想知道为什么匹配super.compound,但不super.compound.key3符合我的预期。
key1
compound.key2
super.compound.key3
Run Code Online (Sandbox Code Playgroud)
欢迎对正则表达式进行任何改进。
您需要使用
(?<=#!)\w+(?:\.\w+)*
Run Code Online (Sandbox Code Playgroud)
请参见regex演示和regex图:
String s = "#!key1 #!compound.key2 #!super.compound.key3";
Matcher matcher = Pattern.compile("(?<=#!)\\w+(?:\\.\\w+)*").matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
}
// => [key1, compound.key2, super.compound.key3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |