UB: Regex.Match von C # gibt beim Abgleichen eine ganze Zeichenfolge anstelle eines Teils zurück

Beachtung! Das istNICHT bezüglichRegex-Problem, entspricht der gesamten Zeichenfolge anstelle eines Teils

Hallo zusammen. Ich versuche es zu tun

Match y = Regex.Match(someHebrewContainingLine, @"^.{0,9} - \[(.*)?\s\d{1,3}");

Abgesehen von den anderen hebräischen VS-Macken (wie möchten Sie] für [beim Bearbeiten der Zeichenfolge ersetzen?), Werden gelegentlich die verrückten Ergebnisse zurückgegeben:

Match.Captures.Count = 1;
Match.Captures[0] = whole string! (not expected)
Match.Groups.Count = 2; (not expected)
Match.Groups[0] = whole string again! (not expected)
Match.Groups[1] = (.*)? value (expected).

Regex.Matches() verhält sich genauso.

Was kann ein allgemeiner Grund für ein solches Verhalten sein? Hinweis: Auf einfache Teststrings wie folgt wird nicht reagiertRegex.Match("-היי45--", "-(.{1,5})-") (Beispiel wird falsch angezeigt! Bitte beachten Sie den Quellcode der Seite.)Es muss etwas mit dem Regex geben, das es gierig macht. Die übereinstimmende Zeichenfolge enthält[ .... ]Das Hinzufügen zu einer Testzeichenfolge bewirkt jedoch nicht den gleichen Effekt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage