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.