Ich versuche, Werte in Gruppen aus einer Zeichenfolge zu extrahieren. Meine Regex istRegulärer Ausdruck am Ende der Zeichenfolge stimmt nicht überein
string str = @"DEMOV 1'07"" MOT Lifestyle 503080 Pure Rain Nozzle Feb 13 472000";
const string type = @"(?<type>\w+)";
const string minutes = @"((?<minutes>\d+)\')?";
const string seconds = @"((?<seconds>\d+)\"")?";
const string body = @"(?<body>.+)";
const string id = @"(?<id>\s\d{6})?";
var pattern1 = String.Format(@"^{0}(?:\s\w+)?\s({1}{2}|{1}|{2})\s?{3}{4}$", type, minutes, seconds, body, id);
var m1 = Regex.Match(str, pattern1);
Ich bekomme das Spiel, aber die Gruppe erhält nicht die letzten 5 Stellen.
Kann mir jemand sagen, was ich hier falsch mache?
Hier finden Sie die Ausgabe, die ich bekomme.
Als ' . + 'ist gierig, es stimmt schon mit diesen Ziffern überein, daher passt die optionale Gruppe nicht. Sie können '. +?' Für die Lazy-Anpassung verwenden. –
Ja. Es funktionierte. Danke –