String url = "CSDN论坛(研发(牛人)论坛地图)";
以上就是一个例子,我是想通过正则表达式把url中的括号以及括号里的内容都删掉
我用的正则表达式是String tmp = url.replaceAll("\\([^\\)]*\\)", "")但是这个只是匹配一对括号,如果遇到嵌套的情况就不好用了
请高手指点 如何去掉带有嵌套形式的括号
回帖即给分
先谢谢各位了java正则表达式

解决方案 »

  1.   

    代码递归+正则
    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));

    }

    }
      

  2.   

    匹配换一下
    匹配任意串String regex = "\\([\\S]*\\)";
      

  3.   

    \s 任何空白字符,例如空格符、制表符和进纸符等
    \S 除 [\s] 之外的任何字符