Ich versuche, die Zeichenkette unten in 3 Gruppen zu teilen, aber damit scheint nicht zu funktionieren, wie erwartet mit dem Muster, das ich verwende. Nämlich, wenn ich matcher.group(3)
aufrufen, bekomme ich einen Null-Wert statt *;+g.3gpp.cs-voice;require
. Was stimmt nicht mit dem Muster?Java Regex Mustergruppe erfassen
String: "*;+g.oma.sip-im;explicit,*;+g.3gpp.cs-voice;require"
Muster: (\\*;.*)?(\\*;.*?\\+g.oma.sip-im.*?)(,\\*;.*)?
Erwartet:
Gruppe 1: null
, Gruppe 2: *;+g.oma.sip-im;explicit
, Gruppe 3: ,*;+g.3gpp.cs-voice;require
Actual:
Gruppe 1: null
, Gruppe 2: *;+g.oma.sip-im
, Gruppe 3: null
Warum bist du nicht einfach auf '' 'spalten? – TheLostMind
@TheLostMind: Weil es zu falschen/unerwarteten Ergebnissen führen würde. –
Könnte einfach '[*] [^, *] +' verwenden und die Übereinstimmungen erhalten? – LukStorms