У меня есть запрос строки с двумя символами для алгоритма поиска. И у меня есть строка, состоящая из трех слов, разделенных запятой. Я хочу найти среди этих трех колясок.
например "Строка, Текст, Поиск"
если введено "Te", поиск должен совпадать, также должны совпадать "Str", "Se".
Я реализовал с помощью регулярного выражения. Но это работает только для первого слова. Обратите внимание, что у меня есть пробел перед вторым словом.
stringInput="String, Text,Search";
word="St";
String pattern1=word+"\\w*,\\s\\w*,\\w";
String pattern2="\\w*,\\."+word+"\\w*,\\w";
String pattern3="\\w*,\\w*,"+word+"\\w";
Pattern patternCompiled1=Pattern.compile(pattern1);
Pattern patternCompiled2=Pattern.compile(pattern2);
Pattern patternCompiled3=Pattern.compile(pattern3);
Matcher matcher1= patternCompiled1.matcher(inputString);
Matcher matcher2= patternCompiled2.matcher(inputString);
Matcher matcher3= patternCompiled3.matcher(inputString);
if(matcher1.find() || matcher2.find() || matcher3.find()){
return true;
}
Можете ли вы помочь мне, почему это не работает для второго и третьего слова?
Некоторые уточнения
Word1, String1, String2 Первый параметр всегда состоит из одного слова, Второй параметр может состоять из двух и более слов, а третий параметр из двух - это может быть несколько слов, разделенных пробелом. например. Текст, некоторый текст, другой текст Текст может быть любым текстом, некоторым, другим текстом, а также может содержать разные символы, я хочу выполнить поиск по первым буквам первого слова из каждого параметра.
\s*
перед запятыми и использовать одинString pattern1="(" + word+"\\w*,\\s*\\w*,\\s*\\w|\\w*,\\s*"+word+"\\w*,\\s*\\w|\\w*,\\s*\\w*,\\s*"+word+"\\w)";
? См. ideone.com/w98knS. - person Wiktor Stribiżew   schedule 18.07.2016String pattern1="(" + word+"\\w*,\\s*\\w+(?:\\s+\\w+)?,\\s*\\w+(?:\\s+\\w+)*|\\w+,\\s*"+word+"\\w*(?:\\s+\\w+)?,\\s*\\w+(?:\\s+\\w+)*|\\w+,\\s*\\w+(?:\\s+\\w+)?,\\s*"+word+"\\w*(?:\\s+\\w+)*)";
? (Та же ссылка) - person Wiktor Stribiżew   schedule 18.07.2016(?=[\b\s]*)word
? - person Maria Ivanova   schedule 18.07.2016