Java - 替换括号中的字符串

时间:2014-11-24 11:13:41

标签: java regex string

我如何在java中执行此操作:

给出一个字符串,对于括号中的每个文本,如果它包含“blabla”,则删除这些括号中的所有文本,包括括号本身

示例:

some string (some text) (blabla foo bar) => some string (some text)
some string (some text) (blabla) => some string (some text)
some string (ex ex) => unchanged (because words in parenthesis doesn't contain "blabla")

感谢。

3 个答案:

答案 0 :(得分:3)

您可以尝试以下replaceAll功能。

string.replaceAll("\\([^()]*blabla[^()]*\\)", "");

<强>解释

  • \\(匹配文字(符号。
  • [^()]*否定字符类,匹配任何字符,但不匹配()零次或多次。
  • blabla匹配字符串blabla
  • [^()]*否定字符类,匹配任何字符,但不匹配()零次或多次。
  • \\)匹配文字)符号。

答案 1 :(得分:1)

\\(.*?\\bblabla\\b.*?\\)

试试这个。empty string

http://regex101.com/r/zU7dA5/12

使用\b确保仅替换blabla而非abcblablaas

答案 2 :(得分:0)

 String x = "some string (some text) (blabla)";
    String replace = x.replace("(blabla)", "");
    System.out.println(""+replace);