我在这里发现了一个类似的问题。但是我没有让它工作:
我有一个像“my_token_string”这样的字符串,需要一个正则表达式来返回标记“my_”、“_token_”和“_string”。
请注意,我无法更改 java 代码,因为它是另一个软件的一部分。我唯一能做的就是指定要捕获的模式和组:-)
这是我测试过的:
String p = "(?=(_[^_]*_?))";
int group = 1;
String test = "my_token_string";
Matcher m = Pattern.compile(p).matcher(test);
while (m.find()) {
System.out.println(m.group(group));
}
但当然这只会返回标记“_token_”和“_string”。