我怎样才能在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")
谢谢。
最佳答案
您可以尝试下面的replaceAll
函数。
string.replaceAll("\\([^()]*blabla[^()]*\\)", "");
说明:
\\(
匹配文字(
符号。[^()]*
否定字符类,与(
或)
以外的任何字符匹配零次或多次。<blabla
匹配字符串blabla
[^()]*
否定字符类,与(
或)
以外的任何字符匹配零次或多次。<\\)
匹配文字)
符号。
关于Java-替换括号中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27103507/