Когда вы используете метод matches()
, он пытается сопоставить весь ввод.В вашем примере ввод «Print this» не соответствует шаблону, потому что слово «Print» не соответствует.
Так что вам нужно добавитьчто-то в регулярное выражение, чтобы соответствовать начальной части строки, например,
.*\\bthis\\b
И если вы хотите разрешить дополнительный текст в конце строки:
.*\\bthis\\b.*
В качестве альтернативы,используйте Matcher
объект и используйте Matcher.find()
, чтобы найти совпадения в входной строке:
Pattern p = Pattern.compile("\\bthis\\b");
Matcher m = p.matcher("Print this");
m.find();
System.out.println(m.group());
Выход:
this
Если вы хотите найтинесколько совпадений в строке, вы можете вызывать find()
и group()
несколько раз, чтобы извлечь их все.