Итак, у меня назначена бонусная задача, и она просит написать программу, которая возвращает true, если в заданной строке повторяется хотя бы один символ.Использование регулярного выражения для поиска хотя бы одного повторяющегося символа в строке
Я относительно новым для регулярных выражений, но, насколько мне известно, это должно работать:
String input = "wool";
return input.matches(".*(.)/1+.*");
Это должно возвращать верно, так как в начале и в конце выражения, что может быть prefices или «*». достаточно. И '(.)/1+' является повторяющимся образцом любого персонажа.
Как я уже говорил, я относительно новичок в области регулярных выражений, но мне очень интересно узнать и понять его.
Спасибо за ответ, но почему-то удаление «. *» Приводит к неправильным ответам. Я предполагаю, что шаблон должен соответствовать точно, а не только частично. И "(.) \\ 1" соответствует только строке, повторяющей один и тот же символ дважды. Но удвоение баххейшей решает проблему. – Hysion
'input.matches (" (.) \\ 1 ");' Это не будет работать в Java, так как 'String.matches()' гарантирует соответствие регулярного выражения всей строке. Поиск существования шаблона в String может выполняться только с помощью Matcher.find(). 'input.matches (". * (.) \\ 1. * ");' то, что нужно OP. – nhahtdh
Я стою исправлены. – Amadan