Sagen wir, ich habe folgende Zeichenfolge:Wie über regulären Ausdruck iterieren
name1=gil;name2=orit;
ich alle Spiele von name=value
finden wollen und stellen Sie sicher, dass die gesamte Zeichenfolge mit dem Muster übereinstimmt.
Also habe ich folgendes:
Stellen Sie sicher, dass das gesamte Muster übereinstimmt, was ich will.
Pattern p = Pattern.compile("^((\\w+)=(\\w+);)*$"); Matcher m = p.matcher(line); if (!m.matches()) { return false; }
Iterate über das Muster
name=value
Pattern p = Pattern.compile("(\\w+)=(\\w+);"); Matcher m = p.matcher(line); while (m.find()) { map.put(m.group(1), m.group(2)); }
Gibt es eine Möglichkeit, dies mit einer Regex zu tun?
standardmäßig regex engine passt im mehrzeiligen Modus.did wollten Sie die Option dotall verwenden!. Auch in dem Beispiel in Frage, funktioniert Ihre Regex nicht .. – Anirudha
@Anirudh: Nein, MULTILINE-Modus ist standardmäßig in Java nicht aktiviert . DOTALL Option wird hier nutzlos sein. – nhahtdh
-1, da dies die Frage nicht beantwortet. – nhahtdh