2015-11-04 71 views
1

我需要用正則表達式創建聲納規則。 我:(Java)正則表達式排除聲納規則

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

我希望所有除了最後用一個正則表達式規則。
我使用\+\+\s*(,|]|\))\s*,我得到了所有。
我用\+\+\s*(,|]|\))\s*(!\{),我什麼也沒得到。

我怎樣才能得到我想要的?

+0

檢查['\ + \ + \ S * [\] []),]'](https://regex101.com/r/fR3iE2/1) – Tushar

+1

也許,[ '\ B [+] {2} \ S * [],)] \ S *'](https://regex101.com/r/zR5wP7/1)?什麼是編程語言/平臺? –

+0

Java,我必須檢測列表[i ++]中的任何'++'; –

回答

2

您可以使用

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

regex demo

注意,在Java中,反斜槓必須加倍。

它會發現長處與標點符號,除了那些在空格(S) + {的前面。

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)); 
} 
+0

請考慮接受,因爲它適合你。 –