我有一個字符串,如下所示。關於java中的正則表達式
$x:Test((x==5 || y==4) && ((r==9 || t==10) && (n>=2 || t<=4))) demo program
在上面的字符串中,根據條件將會更改左側和右側版本的數量。
我的要求是每當我遇到最後一個正確的palenthesis然後需要連接下面的字符串。
from "stream"
所以結果如下。
$x:Test((x==5 || y==4) && ((r==9 || t==10) && (n>=2 || t<=4))) from "stream" demo program
爲了實現這一點,我嘗試用下面的代碼在java中。
Pattern pattern = Pattern.compile(".*?\\.Event\\(([^\\(]*?|\\([^\\)]*?\\))*\\)");
if(line.matches(".*\\.Test(.*).*")){
line = pattern.matcher(line).replaceAll("$0 from \""+"stream"+"\""+" ");
}
但是,如果左側和右側paranthesis的數量大於5,上述代碼不起作用。
需要指針才能達到預期的結果我的意思是我需要任何數量的左和右的通用解決方案。
@ user1668653 ..記住[將其中一個答案標記爲已接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –