Ich versuche, eine bestimmte Zeichenfolge Muster regex java anzupassen.Regex identische Strings auf der gleichen Linie passend
Ich möchte Muster finden, wie
{some stuff|other stuff}
ich folgendes Muster verwende:
"(\\{#" + key + ")(\\|.*)[^\\}]"
Problem ist, dass, wenn ich so etwas wie:
text... {some stuff|other stuff} {some stuff|other stuff} more text
Ich bin passend {some stuff|other stuff} {some stuff|other stuff}
und nicht zwei Vorkommen von {some stuff | other stuff}.
Ich denke, das irgendwie mit dem regex Rückzieher verwandt ist, aber ich habe keine Ahnung, wie man um ihn zu bekommen.
Irgendwelche Ideen?
Mein Java-Code:
Pattern pattern = Pattern.compile("(\\{#" + key + ")(\\|.*)[^\\}]");
Matcher m = pattern.matcher(string);
while (m.find()) {
logger.info(m.group(0));
//logger.warn("Parameter " + key + " is not found");
// throw new Exception("Parameter " + key + " is not found");
}
was ist mit einem zweiten Muster das Spiel gesplittet haben? –
Was ist 'Schlüssel'? Welche genaue Ausgabe brauchst du (zB für '{einige Sachen | andere Sachen}})? Bitte zeigen Sie das reale Beispiel. –
Diese Frage ist unklar.Geben Sie einige konkrete Beispiele für Strings, die Sie abgleichen möchten, und die erwarteten Übereinstimmungsgruppen an. –