Java ReplaceAll(..) 和正则表达式

标签 java regex string replaceall

如何删除带括号的文本?

String string = "product(version(id),code),user(uid)";
string = string.replaceAll("\\(.*\\)", "");
System.out.println("string= " + string);

当我这样做时,我得到:

string= product

但是我想要得到

string= product,user

最诚挚的问候!

最佳答案

试试这个:

String string = "(product(version(id),code),use)r(uid)";
StringBuilder sb = new StringBuilder();
    int countOpenPar = 0;
    for (int i=0; i<string.length(); i++) {
      char c = string.charAt(i);

      if( c == '(' ){
        countOpenPar++;
      }else if( c == ')' ){
        countOpenPar-- ;
      }else if( countOpenPar == 0){
        sb.append(c);
      }
    }
    System.out.println("string= " + sb.toString());

关于Java ReplaceAll(..) 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42713555/

相关文章:

java - 使用 Java 从 Oracle 数据库读取特殊字符 ( æ ø å )

java - 从 Java 中调用具有类委托(delegate)的 Kotlin 对象作为静态方法

java - 使用正则表达式在字符串中查找子字符串

java - 正则表达式在坐标数据上出现故障

java - 获取每个单词的第一个字符及其在句子/段落中的位置

regex - 或 Google Analytics 中正则表达式的运算符

ruby - 为什么 Ruby String#split 不将连续的尾随分隔符视为单独的实体?

c# - 提取 "Home"之后的 URL 部分

.net - String.Join 方法忽略空字符串?

java - 在java中将多个结果保存在数组中