Ich habe zwei BeispieleExtrahierung Gruppe nur dann, wenn vorherige Gruppe abgestimmt wurde
abc 34 def12 ghi
abc 34 33 ghi
und einem regulären Ausdruck
^.*?([0-9]{2}) ?([a-z]{2,3})? ?([0-9]{2}).*$
(siehe https://regex101.com/r/U2JNaS/1)
ich es in einer solchen Weise zu modifizieren, müssen zu extrahieren $1
, $2
, $3
aber nur wenn$2
vorhanden war, d. h. ich brauche es zur Rückgabe
34 def12
<WRONG>
Wie erreicht man das?
@anubhava Sorry, ich habe es nicht klar: Ersatz-Funktion gibt mir alles, wenn es keine Übereinstimmung gibt, meinte ich, dass das zweite Beispiel nicht übereinstimmt (bearbeitet). – Tim
Dann machen Sie 2. nicht-optional als: ['^. *? ([0-9] {2}) \ s * ([az] {2,3}) \ s * ([0-9] {2}). $ $] (https://regex101.com/r/U2JNaS/2) – anubhava