2016-04-03 2 views
-1

В java, я хочу сохранить в тестовой строке только буквы, но я также хочу удалить из нее слово Poppins. я в настоящее время:Regex соответствует другим критериям

String test = "01 - Poppins - Poppins - Asurrect"; 
System.out.println(test.replaceAll("[^(A-Za-z\\s)]", "").trim()); 

это дает мне: Поппинс Поппинс Asurrect

, но я хочу просто Asurrect.

Я бы предпочел просто связать это с моим текущим регулярным выражением, если не было ничего необычного.

ответ

2

Использование регулярных выражений чередованием, если вы просто хотите, чтобы сделать его чистым регулярное выражение:

String test = "01 - Poppins - Poppins - Asurrect"; 
System.out.println(test.replaceAll("\\bPoppins\\b|[^A-Za-z\\s]+", "").trim()); 
//=> Asurrect 
  • \b для границы слова.
  • Не нужно использовать (...) внутри класса символов, как показано на рисунке
  • Лучше использовать квантификатор для минимизации замеров.

RegEx Demo

+1

Это именно то, что я искал! –

Смежные вопросы