Pisząc tę odpowiedź , musiałem dopasować wyłącznie na łamach linii zamiast używać opcji s
-flag ( dotall
- kropka odpowiada podziałom linii).
Witryny używane zwykle do testowania wyrażeń regularnych zachowują się inaczej, gdy próbują dopasować na \n
lub \r\n
.
Zauważyłem
Regex101 dopasowuje tylko podziały wierszy
\n
( przykład - usuń\r
i pasuje)RegExr dopasowuje podziały linii ani włączone,
\n
ani włączone\r\n
i nie mogę znaleźć czegoś, co pasowałoby do podziału linii, z wyjątkiemm
-flag i\s
( przykład )Debuggex zachowuje się jeszcze bardziej inaczej:
w tym przykładzie pasuje tylko do\r\n
, podczas gdy
tutaj pasuje tylko do\n
, z tymi samymi flagami i określonym silnikiem
W pełni zdaję sobie sprawę z opcji m
-flag (multiline - ^
dopasowuje początek i $
koniec wiersza), ale czasami nie jest to opcja. To samo \s
dotyczy również tabulatorów i spacji.
Moja myśl o użyciu znaku nowej linii Unicode ( \u0085
) nie powiodła się, więc:
- Czy istnieje bezpieczny sposób zintegrowania dopasowania w miejscu zakończenia wiersza (najlepiej niezależnie od używanego języka) z wyrażeniem regularnym?
- Dlaczego wyżej wymienione strony zachowują się inaczej (zwłaszcza Debuggex, dopasowywanie tylko
\n
raz i raz tylko\r\n
)?
\r?\n
aby dopasować zarówno sekwencje zakończenia linii, jak \r\n
i \n
sekwencje zakończenia linii. Nie działa dla starej \r
składni Maca, ale ta jest obecnie dość rzadka.
[\r\n]+
- lub coś takiego