我需要用正则表达式创建一个声纳规则。 我有:
j++]
j++ ]
j++)
j++ )
j++,
j++ ,
for (int j = 0; j < result.length; j++) {
我想要除了最后一个正则规则之外的所有人
我使用\+\+\s*(,|]|\))\s*
,我得到了所有
我使用\+\+\s*(,|]|\))\s*(!\{)
而我什么都没得到。
我怎样才能得到我想要的东西?
答案 0 :(得分:2)
您可以使用
[+]{2}\s*[\],)]\s*(?!\s*[{])
请参阅regex demo
请注意,在Java中,反斜杠必须加倍。
除了 空白 + { 之前的标点符号外,它会找到标点符号的加号
String s = "++]\n++ ]\n++)\n++ )\n++,\n++ ,\nfor (int j = 0; j < result.length; j++) {";
Pattern pattern = Pattern.compile("[+]{2}\\s*[\\],)]\\s*(?!\\s*[{])");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println(matcher.group(0));
}