2014-11-24 3 views
2

Как я могу сделать это в Java: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

Вы можете попробовать ниже replaceAll функции.

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

Объяснение:

  • \\( Спички буквального ( символ.
  • [^()]* Отрицательный класс символов, который соответствует любому символу, но не ( или ) 0 или более раз.
  • blabla сопоставляет строки blabla
  • [^()]* класс отрицается символов, который соответствует любому символу, но не ( или ) ноль или более раз.
  • \\) Соответствует литералу ) symbol.
1
\\(.*?\\bblabla\\b.*?\\) 

Try this.Replace по empty string.

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

Используйте \b, чтобы убедиться, что вы заменяете только blabla и не abcblablaas

0
String x = "some string (some text) (blabla)"; 
    String replace = x.replace("(blabla)", ""); 
    System.out.println(""+replace); 
Смежные вопросы