Лучший вариант здесь, на мой взгляд, состоит в том, чтобы отбросить второй \b
:
Pattern myPattern = Pattern.compile( "\\b" + phrase);
phrase
, заканчивающийся !)
, которые не являются символами слова, и должны хорошо совпадать для всехнапример: failures!), and more
, failures!)
, failures!)or not
Если вы хотите убедиться, что за ним не следует другая буква, вы можете использовать "\\b" + phrase + "\\B"
, но я не уверен, что этонужен здесь.