Mientras escribía esta respuesta , tenía que coincidir exclusivamente en los saltos de línea en lugar de usar s-flag ( dotall- el punto coincide con los saltos de línea).
Los sitios generalmente utilizados para probar expresiones regulares se comportan de manera diferente cuando se intenta hacer coincidir en \no \r\n.
Me di cuenta
Regex101 coincide con los saltos de línea solo en
\n
( ejemplo : eliminar\ry coincide)RegExr no coincide con los saltos de línea ni encendido
\nni encendido\r\n
y no puedo encontrar algo que haga que coincida con un salto de línea, excepto por lambandera y\s
( ejemplo )Debuggex se comporta aún más diferente:
en este ejemplo , solo coincide\r\n, mientras que
aquí solo coincide\n, con los mismos indicadores y el mismo motor especificado
Soy plenamente consciente de la mbandera (multilínea, hace ^coincidir el inicio y $el final de una línea), pero a veces esto no es una opción. Lo mismo con \s, ya que coincide con las pestañas y los espacios también.
Mi idea de usar el carácter de línea nueva Unicode ( \u0085) no tuvo éxito, así que:
- ¿Hay alguna forma segura de integrar la coincidencia en un salto de línea (preferiblemente independientemente del lenguaje utilizado) en una expresión regular?
- ¿Por qué los sitios mencionados anteriormente se comportan de manera diferente (especialmente Debuggex, coincidiendo solo una
\nvez y solo una vez\r\n)?
\r?\npara que coincida con los dos \r\ny \nde terminación de línea secuencias. No funciona para la \rsintaxis antigua de Mac, pero esa es bastante rara en estos días.
[\r\n]+, o algo así