UB: Regex.Match C # zwraca cały łańcuch zamiast części podczas dopasowywania
Uwaga! To jestNIE związany zProblem Regex, dopasowuje cały łańcuch zamiast części
Cześć wszystkim. staram się robić
Match y = Regex.Match(someHebrewContainingLine, @"^.{0,9} - \[(.*)?\s\d{1,3}");
Oprócz innych dziwactw hebrajskich VS (jak lubisz zamieniać) na [podczas edycji ciągu?], Czasami zwraca zwariowane wyniki:
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()
działa w ten sam sposób.
Co może być ogólnym powodem takiego zachowania? Uwaga: nie działa w ten sposób na prostych ciągach testowych, takich jakRegex.Match("-היי45--", "-(.{1,5})-")
(próbka jest wyświetlana niepoprawnie!, spójrz na kod źródłowy strony), musi istnieć coś z wyrażeniem regularnym, które sprawia, że jest chciwy. Dopasowany ciąg zawiera[ .... ]
, ale dodanie ich do ciągu testowego nie powoduje tego samego efektu.