[英]How to match everything up to the last occurence of a special character set?
我正在尝试修改我的正则表达式拆分器。
我的表达很简单:匹配一个字符集的一个或多个出现: \\s*[|()!=\\s]+
运行此示例将得出:
(output !==(not output)) | (output)
//output, not output, output
现在,我要执行以下操作:“如果出现一个=
字符,则在后面匹配所有字符,直到最后一次出现同一字符集为止。”
再次查看上面的示例,它可以看到第一个=
,然后应完全匹配以下内容: !==(not output)) | (
!==(not output)) | (
怎么办呢?
我不确定这是否意味着以后使用,但对于您当前的输入,它是否有效
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)) | (
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.