Під час написання цієї відповіді мені довелося співставляти виключно на 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]+- або щось подібне