У меня есть предложение и множество слов; Мэйуэзер, непобедимый ... и т.д. Я хочу:Используйте Java Regex, чтобы найти несколько подходящих слов в предложении
- проверить, если предложение содержит какое-либо из упомянутых выше слов ... (Я хочу, чтобы найти подходящие слова только, в основном игнорируют полные упоры, запятые и новые линии .)
- и если это произойдет, я хочу, чтобы отобразить несколько слов до и после каждого согласования слова, может быть, с помощью
String.format()
Вот мой код, который, кажется, работает хорошо, но не совсем, как я хочу это:
String sentence = "Floyd Mayweather Jr is an American professional boxer " +
"currently undefeated as a professional and is a five-division world champion, " +
"having won ten world titles and the lineal championship in four different weight classes.";
String newText = "";
Pattern p = Pattern.compile("(Mayweather) .* (undefeated)");
Matcher m = p.matcher(sentence);
if (m.find()) {
String group1 = m.group(1);
String group2 = m.group(2);
newText = String.format("%s ... %s" , group1, group2);
System.out.println(newText);
}
Выход сейчас:
Мэйвезер ... непобедимый
То, что я хочу что-то вроде этого:
Флойд Мэйуэзер-младший является американским ... в настоящее время undefeated как профессионал ...
Можете ли вы, пожалуйста, я знаю, как это сделать, или направлять меня в правильном направлении, потому что я застрял.
Спасибо заранее, ребята.
Почему бы не использовать 'contains()' для проверки и 'replaceAll()' заменить? – TheLostMind
Я не уверен, что вы имеете в виду, но я не хочу заменять текст в предложении, я хочу показать то же, но определенным образом. Если вы имели в виду что-то еще, пожалуйста, проясните это или покажите мне пример. Благодарю. –