Метод поиска регулярных выражений Java возвращает false для соответствия римским цифрам
Я пытаюсь создать шаблон регулярных выражений в Java, чтобы соответствовать тексту списка, который имеет определенные атрибуты. Например:
(i) hello stackru (iv) hello user
Список может совпадать (i)
или же i)
, Я пришел к шаблону, используя мое понимание регулярных выражений, и проверил эту версию в онлайн-инструменте, и он возвращает правильный результат. Однако, когда я реализую его в Java, шаблон соответствия возвращает false для метода find.
Вот псевдокод:
String text = "(i) hello";
String romanNumeralsRegex = "^(\\(|\\[)?((v|x)?i[xv]|(xv|v|x)?i+|(xv|v|x))((\\)|\\]|\\.))";
Pattern pattern = Pattern.compile(romanNumeralsRegex );
Matcher matcher = pattern.matcher(text);
System.out.println(matcher.find());
Метод matcher.find() возвращает false. Согласно моему пониманию, матчер должен вернуться group(0)
как (i)
, Я не знаю, где я ошибся. Запрос помощи от сообщества здесь
Заранее спасибо.
1 ответ
Для меня все выглядит правильно, кроме звонка Matcher#group
после звонка Matcher#find
:
if (matcher.find()) {
System.out.println(matcher.group(0));
}
Выход:
(i)