我如何在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")
感谢。
答案 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);