Я пытаюсь удалить все, кроме определенных фраз. Мне было интересно, если бы было аккуратное решение этого с использованием только регулярных выражений:
String strEthnicity = "the person should be East Asian or African American or Hispanic.";
String strRegex = "\\b(?!hispanic|caucasian|african american|east asian))\\b\\S+";
strEthnicity = strEthnicity.toLowerCase().replaceAll(strRegex,"");
Единственная проблема с этим заключается в том, что он не работает хорошо с фразами, только отдельные слова ...
Возвращает: "восточноафриканский испани c"
Вместо: "восточноазиатский афроамериканский испани c"
Я пытался использовать скобки и Я также посмотрел на этот вопрос , который кажется похожим, но я хотел посмотреть, есть ли лучшее решение, чем данное (оно также не java, так что, надеюсь, не считается дубликатом)