Я пытаюсь сопоставить строку с помощью класса Java Pattern.Java Regex в соответствии с предоставленным словом со специальными charcters
private boolean isMatch(String searchSentence, String matchWord) {
String patternText = ".*\\b";
Pattern pattern = Pattern.compile(patternText + matchWord + "\\b.*",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(searchSentence);
return matcher.matches();
}
Это будет работать, если у меня есть спички строка, которая не содержит никаких специальных символов, как ({[и др
Я могу найти «RANCH» но не «RANCH (EAGLEFORD) "
несколько примеров
- Пусть говорят моя входная строка: " Точка [-99.73586,28.38092]» тогда я должен быть в состоянии найти „-99.73586,28.38092“
- Пусть говорим моя входная строка: „Точка [-99.73586,28.38092]“ тогда я должен быть в состоянии искать «[-99.73586,28.38092]»
- Пусть говорим моя входная строка: «Ренч RenchY» тогда я должен быть в состоянии искать «Ренч» но RenchY не должна быть частью результат поиска. Так как я могу обращаться с этим типом корпуса.
Что такое ввод образца? каков ожидаемый результат?, что вы пытаетесь сделать? – TheLostMind
Что такое граница слов для вас? Является ли «слово» просто куском небелых символов? Обратите внимание, что ')' не является символом слова, '\ b' после того, как ему понадобится слово char сразу после скобки. Другая проблема заключается в том, что вам нужно использовать 'Pattern.quote (matchWord)'. –
Давайте попробуем пояснить это с помощью подсказки: попробуйте 'Pattern.compile (". * (?