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 \n
o \r\n
.
Me di cuenta
Regex101 coincide con los saltos de línea solo en
\n
( ejemplo : eliminar\r
y coincide)RegExr no coincide con los saltos de línea ni encendido
\n
ni encendido\r\n
y no puedo encontrar algo que haga que coincida con un salto de línea, excepto por lam
bandera 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 m
bandera (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
\n
vez y solo una vez\r\n
)?
\r?\n
para que coincida con los dos \r\n
y \n
de terminación de línea secuencias. No funciona para la \r
sintaxis antigua de Mac, pero esa es bastante rara en estos días.
[\r\n]+
, o algo así