Enquanto escrevia esta resposta , tive que corresponder exclusivamente em quebras de linha em vez de usar o ssinalizador -flag ( dotall- ponto corresponde a quebras de linha).
Os sites geralmente usados para testar expressões regulares se comportam de maneira diferente ao tentar corresponder em \nou \r\n.
Percebi
O Regex101 corresponde apenas a quebras de linha em
\n
( exemplo - excluir\re corresponde)RegExr corresponde quebras de linha nem em
\nnem em\r\n
e eu não posso encontrar algo para torná-lo coincidir com uma quebra de linha, exceto para om-flag e\s
( exemplo )Debuggex comporta-se ainda mais diferente:
em este exemplo ele corresponde apenas no\r\n, enquanto
aqui só corresponde a\n, com as mesmas bandeiras e motor especificados
Estou plenamente ciente do m-flag (multiline - faz ^coincidir com o início e $o final de uma linha), mas às vezes isso não é uma opção. O mesmo \sacontece com a correspondência de tabulações e espaços também.
Meu pensamento de usar o caractere de nova linha unicode ( \u0085) não foi bem-sucedido, então:
- Existe uma maneira segura de integrar a correspondência em uma quebra de linha (de preferência independentemente do idioma usado) em uma expressão regular?
- Por que os sites mencionados acima se comportam de maneira diferente (especialmente o Debuggex, correspondendo apenas uma
\nvez e apenas uma vez\r\n)?
\r?\npara combinar as seqüências de terminação \r\ne de \nlinha. Não funciona para a \rsintaxe antiga do Mac, mas essa é bastante rara atualmente.
[\r\n]+- ou algo parecido com isto