1
我有一個這樣的字符串:Java的正則表達式的遞歸匹配
IF(expr1,text1,IF(expr2,text2,IF(expr3,text3,text4)))
我需要處理IF(expr3,text3,text4)))
因此上述變成
IF(expr1,text1,IF(expr2,text2,new_text))
我需要繼續這樣做,直到我有
IF(expr1,text1,new_text3)
我的模式字符串"IF\\(.*?,.*?,.*?\\)"
將匹配整個事情。不是IF(expr3,text3,text4)))
。
Java代碼:來完成,這將是要創造定位和IF使用正則表達式語句返回任內的方法
String val = "IF(expr1,text1,IF(expr2,text2,IF(expr3,text3,text4)))";
String regx = "IF\\(.*?,.*?,.*?\\)";
Pattern patt1 = Pattern.compile(regx);
Matcher m2 = patt1.matcher(val);
while (m2.find()) {
String val0 = m2.group();
System.out.println(val0);
}
在代碼的哪裏添加'new'和'3'?什麼是規格? –
正則表達式不是遞歸的工具。你看起來像某種語言,你可能想要考慮一些像[ANTLR](http://www.antlr.org/),或者建立你自己的解析器。 – totoro