Допустим, у меня есть следующие строки:Как перебрать регулярное выражение
name1=gil;name2=orit;
Я хочу, чтобы найти все матчи name=value
и убедитесь, что вся строка соответствует шаблону.
Так что я сделал следующее:
Убедитесь, что вся картина соответствует тому, что я хочу.
Pattern p = Pattern.compile("^((\\w+)=(\\w+);)*$"); Matcher m = p.matcher(line); if (!m.matches()) { return false; }
Итерация по шаблону
name=value
Pattern p = Pattern.compile("(\\w+)=(\\w+);"); Matcher m = p.matcher(line); while (m.find()) { map.put(m.group(1), m.group(2)); }
Есть ли способ сделать это с помощью одного регулярного выражения?
по умолчанию regex engine соответствует многострочному режиму.did вы хотели использовать опцию dotall !.также, учитывая пример, ваше регулярное выражение не работает. – Anirudha
@Anirudh: Нет, по умолчанию режим MULTILINE не включен в Java , Опция DOTALL здесь бесполезна. – nhahtdh
-1, так как это не отвечает на вопрос. – nhahtdh