У меня есть функция:Java Сличитель не работает
Boolean rhyme(String words) {
Pattern pattern = Pattern.compile("...");
Matcher matcher = pattern.matcher(words);
matcher.matches();
return matcher.group(1).equals(matcher.group(2));
}
String words
где содержит два слова, разделенные \t
как: read\tdead
. Функция должна проверить, совпадают ли последние три буквы каждого слова, и если это так возвращает true
, в противном случае возвращается false
.
Я не могу изменить какой-либо код, я просто должен создать выражение регулярного выражения, чтобы эти функции работали.
Мое текущее выражение: (.{3}?)(?=[\t])|(.{3}$)
, и когда я подключаю его к regex101, он работает. Когда я использую это выражение в функции, я получаю ошибку java.lang.IllegalStateException: No match found
. Может кто-нибудь помочь мне выяснить, где я ошибаюсь, и помните, я не могу изменить какой-либо код, кроме выражения шаблона.
Видя реальный проблемный код будет полезным. Вы избежали «\» в своем регулярном выражении? –
@JamieBisotti Java зарегистрирует строку как 'read dead', поэтому мне не нужно будет скрывать '\'. Плюс я пробовал это в любом случае – Eduardo