我正在尝试修改我的正则表达式分割器。
我的表达很简单:匹配一个或多个字符集的出现:\s*[|()!=\s]+
运行这个例子会给出:
(output !==(not output)) | (output)
//output, not output, output
现在我想要以下内容:“如果发生了=
个字符,那么后面的所有内容都会匹配到最后一次出现的相同字符集。”
再次查看上面的示例,它可以看到第一个=
,然后应该完全匹配以下内容:!==(not output)) | (
怎么可以这样做?
答案 0 :(得分:0)
我不确定这是否是您以后使用的意思,但是对于您当前的输入它是否有效
String data = "(output !==(not output)) | (output)";
Matcher m = Pattern.compile("(\\w+)\\s*(?=!?==)(.*)\\1").matcher(data);
// ^-group1 ^ ^-repeated group1
// |group 2
while (m.find()) {
System.out.println(m.group(2));//match from group 2
}
输出:
!==(not output)) | (