Під час написання цієї відповіді мені довелося співставляти виключно на s
проривах рядків, а не використовувати -flag ( dotall
- крапка збігів рядків).
Сайти, які зазвичай використовуються для тестування регулярних виразів, поводяться по-різному при спробі відповідності на \n
або \r\n
.
Я помітив
Regex101 відповідає лише рядковим розривам
\n
( приклад - видалення\r
та збіг)RegExr не відповідає ні на,
\n
ні ввімкнено,\r\n
і я не можу знайти щось для того, щоб воноm
збігалося з розривом рядків, за винятком -flag та\s
( приклад )Debuggex поводиться ще більше:
у цьому прикладі він відповідає лише увімкнено\r\n
, тоді як
тут він відповідає лише тому\n
, що вказані ті самі прапорці та двигун
Я цілком усвідомлюю m
-flag (багаторядковий - поєднує ^
початок і $
кінець рядка), але іноді це не варіант. Те саме \s
, що відповідає вкладкам і пробілам.
Моя думка використовувати символ unicode newline ( \u0085
) виявилася невдалою, тому:
- Чи є безпечний спосіб інтегрувати відповідність у рядку (бажано незалежно від мови, що використовується) у регулярний вираз?
- Чому вищезазначені сайти поводяться по-різному (особливо Debuggex, збігаючись один раз лише на
\n
та один раз\r\n
)?
\r?\n
для узгодження обох \r\n
і \n
послідовностей завершення рядків. Він не працює для старого \r
синтаксису Mac, але цей сьогодні є досить рідкісним.
[\r\n]+
- або щось подібне