2009-01-08 12 views
5

¿Cómo se escribe una expresión regular .net que coincidirá con una cadena que no se inicia con "asiento"Regex booleana no

+0

¿para qué usar expresiones regulares en lugar de! StringInstance.StartsWith ("asiento") – Juliet

+0

Podría ser parte de una expresión mayor. – Soviut

Respuesta

10

Lo que estamos buscando es:

^(?!Seat).+ 

This article tiene más información acerca de aheads mirada.

+0

Neato. Anteriormente no había visto esta construcción. ¡Bonito! – JaredPar

+0

Eso es bastante útil, tendré que recordar eso. – DavGarcia

+0

Marque mi respuesta correcta, me gustaría los puntos de reputación por favor;) – Soviut

7

Escribir una expresión regular para un "no se inicia con" puede ser un poco difícil. A menudo es más fácil escribir una expresión regular para detectar que una cadena comienza con una subcadena y no la coincidencia.

Por ejemplo:

return !Regex.IsMatch("^Seat.*", input); 
+0

Yay por esa respuesta. Me gusta mantener las cosas simples. – PEZ

0

Sugeriría que no lo haga. Debería poder obtener cada cadena que no concuerde.

!Regex.IsMatch("^Seat.*", string);