validate test regulares regular para net libreria expressions expresiones expresion and regex

test - regex syntax



¿Expresión regular que rechaza todas las entradas? (11)

¿Por qué querrías eso? ¿No sería una simple declaración si el truco? Algo como:

if ( inputString != "" ) doSomething ()

¿Es posible construir una expresión regular que rechace todas las cadenas de entrada?


Bien,

No estoy seguro si entendí, ya que siempre pensé en la expresión regular de una forma de hacer coincidir cadenas. Yo diría que la mejor oportunidad que tienes es no usar regex.

Pero también puede usar regexp que coincida con líneas vacías como ^$ o una expresión regular que no coincida con palabras / espacios como [^/w/s] ...

¡Espero eso ayude!


Depende de lo que quiere decir con "expresión regular". ¿Te refieres a expresiones regulares en un lenguaje de programación o biblioteca en particular? En ese caso, la respuesta es probablemente sí, y puede consultar cualquiera de las respuestas anteriores.

Si te refieres a las expresiones regulares como se enseñan en las clases de informática, entonces la respuesta es no. Cada expresión regular coincide con alguna cadena. Podría ser la cadena vacía, pero siempre coincide con algo .

En cualquier caso, le sugiero que edite el título de su pregunta para reducir el tipo de expresiones regulares que quiere decir.


EDITAR: [^ / n / r / w / s]


Las mejores expresiones regulares estándar (es decir, sin referencias anticipadas o retrospectivas) que rechazan todas las entradas son (después de @aku arriba)

.^

y

$.

Estas son contradicciones planas: "una cuerda con un personaje antes de su comienzo" y "una cuerda con un personaje después de su final".

NOTA: Es posible que algunas implementaciones de expresiones regulares rechacen estos patrones como mal formados (es bastante fácil comprobar que ^ viene al principio de un patrón y $ al final ... con una expresión regular), pero los pocos que '' he verificado, acéptalos. Tampoco funcionarán en implementaciones que permitan que ^ y $ coincidan con nuevas líneas.


Para mí, parece que estás atacando un problema de la manera equivocada, ¿qué estás tratando de resolver exactamente?

Podría hacer una expresión regular que atrape todo y anule el resultado.

por ejemplo, en javascript:

if (! str.match( /./ ))

pero entonces podrías hacer

if (!foo)

en cambio, como @ [jan-hani] dijo.

Si está buscando insertar una expresión regular de ese tipo en otra expresión regular, es posible que esté buscando $ o ^ en su lugar, o use lookaheads como @ [henrik-n] mencionado.

Pero como dije, parece un problema "Creo que necesito x, pero lo que realmente necesito es".


Probablemente esto:

[^/w/W]

/ w - carácter de la palabra (letra, dígito, etc.)
/ W - opuesto a / w

[^ / w / W] - siempre debería fallar, porque cualquier carácter debería pertenecer a una de las clases de caracteres - / w o / W

Otros fragmentos:

$.^

$ - afirmar la posición al final de la cadena
^ - afirmar posición al comienzo de la línea
. - cualquier char

(?#it''s just a comment inside of empty regex)

El lookahead / behind vacío debería funcionar:

(?<!)


Un ejemplo de por qué tal cosa podría ser necesaria es cuando quiere filtrar alguna entrada con expresiones regulares y pasa regex como argumento a una función.

En el espíritu de la programación funcional, para la integridad algebraica, es posible que desee algunos expresiones primarias triviales como "todo está permitido" y "no se permite nada".


[^ / x00- / xFF]


[^]+ debería hacerlo.

En respuesta al comentario de aku adjunto a esto, lo probé con un probador de expresiones regulares en línea ( http://www.regextester.com/ ), así que supongo que funciona con JavaScript. Debo confesar que no lo estoy probando en un código "real". ;)


(?=not)possible

? = es una anticipación positiva. No son compatibles con todos los sabores de expresiones regulares, pero en muchos.

La expresión buscará "no", luego buscará "posible" comenzando en la misma posición (dado que las cabeceras no avanzan en la cadena).