(Java)正则表达式排除声纳规则

时间:2015-11-04 11:10:30

标签: regex sonarqube

我需要用正则表达式创建一个声纳规则。 我有:

j++] 
j++   ]
j++)
j++   ) 
j++,
j++  ,
for (int j = 0; j < result.length; j++) {

我想要除了最后一个正则规则之外的所有人 我使用\+\+\s*(,|]|\))\s*,我得到了所有 我使用\+\+\s*(,|]|\))\s*(!\{)而我什么都没得到。

我怎样才能得到我想要的东西?

1 个答案:

答案 0 :(得分:2)

您可以使用

[+]{2}\s*[\],)]\s*(?!\s*[{])

请参阅regex demo

请注意,在Java中,反斜杠必须加倍。

除了 空白 + { 之前的标点符号外,它会找到标点符号的加号

Java code sample

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)); 
} 
相关问题