正则表达式如何配对以下字符窜
String url = "CSDN论坛(研发(牛人)论坛地图)";
以上就是一个例子,我是想通过正则表达式把url中的括号以及括号里的内容都删掉
我用的正则表达式是
String tmp = url.replaceAll("\\([^\\)]*\\)", "")
但是这个只是匹配一对括号,如果遇到嵌套的情况就不好用了
请高手指点 如何去掉带有嵌套形式的括号
回帖即给分
先谢谢各位了 java 正则表达式
[解决办法]
代码递归+正则
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringSplite {
public String work(String word){
String regex = "\\([\\u4e00-\\u9fa5]*\\)";
String wordTmp = "";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(word);
if(m.find()){
//System.out.println(m.group());
wordTmp = word.replace(m.group(), "");
}else{
return word;
}
return work(wordTmp);
}
public static void main(String[] args) {
String word = "CSDN论坛(研发(牛人)论坛(牛人)地图)";
StringSplite ss = new StringSplite();
System.out.println(ss.work(word));
}
}
[解决办法]
匹配换一下
匹配任意串
String regex = "\\([\\S]*\\)";