Das ist mein regex Code ist:Regex passt zweites Vorkommen. Ich brauche es erste Auftreten paßt
.*(X.*)\s(.*?)\$
Dies ist mein Datenstring:
1247.P1.06.Z01.0020N.X396X111.Y008 1247.P1.06.Z01.0020N$M234477$
Dieses richtig ist, das zweite Element greifen, die mit dem ersten $ -Zeichen endet:
1247.P1.06.Z01.0020N
Aber für die erste Saite, will ich es packen:
X396X111.Y008
Stattdessen wird Grabbing:
X111.Y008
So will ich es das erste X
und alles bis zum Platz zu bekommen. Aber die zweite X
löst die Übereinstimmung aus.
Der String mit „X“ beginnt, ist immer 13 Zeichen, so habe ich versucht, die Länge spezifiziert, aber es immer noch mit dem zweiten X
Ich bin gut mit entweder Muster gestartet:
- Beginnen Sie mit der erstes X und end mit dem Leerzeichen.
- Beginnen Sie mit dem ersten X und greifen Sie 13 Zeichen.
Vielen Dank.
Danke. Dieses Muster löste auch das Problem: https://regex101.com/r/FcrmpV/2 – Karl
Das ist im Wesentlichen das Gleiche, da '. *?' Macht es das kürzeste Präfix anstelle des längsten Präfix übereinstimmen. Aber es ist immer noch völlig unnötig. – Barmar