Я использую следующий г, чтобы определить, если слово появляется в тексте, соблюдение границ слов:Определите, если строка имеет внутренние границы слов
if (Pattern.matches(".*\\b" + key + "\\b.*", text)) {
//matched
}
Это будет соответствовать книге на учебнику но не на описание товара facebook.
Теперь, я хотел бы сделать обратное: определить, есть ли текст ввода внутри границы слова.
E.g. mutually-collaborative
(ПРАВИЛЬНО, есть граница слова внутри) и mutuallycollaborative
(НЕПРАВИЛЬНО, поскольку внутри нет границы слова).
Если граница была пунктуации это будет работать:
if(Pattern.matches("\\p{Punct}", text)) { //check punctuations
//has punctuation
}
Я хотел бы проверить границы слов в целом, например, '-' и т. д.
Любая идея?
Вы должны добавить примеры, так как ваш вопрос неясен. –
Если вы хотите найти слова, содержащие 'key', просто используйте' '(? S). * (?: \\ B" + key + "|" + key + "\\ B). *" '(С '.matches()'). –
@CasimiretHippolyte, что непонятно? Я хотел бы соответствовать любой границе слова. Я привел пример дефиса ('-') и знаков препинания. Это примеры границ слов, но я ищу общий случай. –