Я рассматривал REGEX как возможное решение проблемы. Я сделал несколько примеров строк, содержащих такие слова, как hello, hellllooo, hhhheello и т. Д. Затем я создал регулярное выражение, чтобы найти все эти типы слов. То, что мне не нужно делать, это посмотреть на предложение, которое может содержать или не содержать введенное слово. Например, вы вводите hellloo, я хотел бы отсканировать свое предложение для слов, похожих на «hellloo», и вернуть «hello», если их найти в предложении. Могу ли я создать регулярное выражение, которое представляет собой переменную ввода пользователя? Если вы наберете hellloo, тогда я построю что-то, возвращающее похожие слова к вашему вводу из предложения или файла.Java, могут ли переменные regex принимать переменные?
Две входные строки
String line = "this is hello helloooo hellllooo hhhel hellll what can I do?";
String longLine = "hello man this what can up down where hey my there find now ok stuff jive super sam dude car";
мой регулярное выражение функции
public static void regexChecker(String theRegex, String str2Check) {
Pattern checkRegex = Pattern.compile(theRegex);
Matcher regexMatcher = checkRegex.matcher(str2Check);
while(regexMatcher.find()) {
if(regexMatcher.group().length() != 0) {
System.out.println(regexMatcher.group().trim());
}
}
}
работает этот
regexChecker("\\s[h]*[e]*[l]*[l]*[o]*\\s", line);
возвращается
hello
hello
hellllooo
hellll
Я хотел бы создать REGEX, основанный на пользовательском вводе 'helllooo', который возвращает привет от второй строки LongLine. Не уверен, что регулярное выражение является правильным решением, но я хотел бы знать, возможно ли это.
Почему вы положили буквы в '[]'? Не. --- Вы действительно хотите, чтобы буквы были необязательными, поэтому они совпадают, например. слово «хо»? Измените '*' на '+', чтобы потребовалось хотя бы одно из каждой буквы. --- Замените оба '' \\ s'' '' \\ b'' для соответствия границам слов. --- Регулярное выражение должно быть '' \\ bh + e + l + l + o + \\ b "'. См. [Regex101] (https://regex101.com/r/sh0bmt/1) для демонстрации. – Andreas
Спасибо, он должен был быть + – Yawn