musiałem to zrobić w C# do analizowania CSV i żaden z nich nie pracował dla mnie, więc wymyśliłem to:
\s*(?:(?:(['"])(?<value>(?:\\\1|[^\1])*?)\1)|(?<value>[^'",]+?))\s*(?:,|$)
to będzie analizować obecnie pola z lub bez cudzysłowów i wykluczy cytaty z wartością z zachowaniem wbudowanego q uotes i przecinki. <value>
zawiera przeanalizowaną wartość pola. Bez użycia nazwanych grup, grupa 2 lub 3 zawiera wartość.
Dostępne są lepsze i bardziej wydajne sposoby na przetwarzanie CSV, a to nie będzie skuteczne w identyfikowaniu błędnych danych wejściowych. Ale jeśli masz pewność, że Twój format wejściowy i wydajność nie stanowią problemu, może to zadziałać.
Czy spodziewasz się wycinków z cudzysłowami w ramach notowanych ciągów znaków? Jak w "Jestem" 5'7 \ "" wysoki "? –