regexp - probar expresiones regulares
NegaciĆ³n de cadenas usando expresiones regulares (2)
¿Es posible hacer una negación de cadenas en expresiones regulares? Necesito hacer coincidir todas las cadenas que no contengan la cadena ".."
. Sé que puedes usar ^[^/.]*$
Para unir todas las cadenas que no contengan "."
pero necesito unir más de un personaje. Sé que podría hacer coincidir una cadena que contenga ".."
y luego anular el valor de retorno de la coincidencia para lograr el mismo resultado, pero me pregunté si sería posible.
Puedes usar lookaheads negativos:
^(?!.*/./.).*$
Eso hace que la expresión no coincida si puede encontrar una secuencia de dos períodos en cualquier lugar de la cadena.
^(?:(?!/./.).)*$
solo coincidirá si no hay dos puntos consecutivos en ninguna parte de la cadena.