Dev - C++ - Problema con expresiones regulares

 
Vista:
sin imagen de perfil

Problema con expresiones regulares

Publicado por JORGE (1 intervención) el 11/05/2017 18:30:56
Hola a Todos,

estoy aprendiendo a programar en WPF con C# y estoy tratando de hacer una validación de un texbox de un domicilio para que cumpla con las siguientes características:

1. El domicilio debe de tener forzosamente un número separado de cualquier letra.
2. No se permiten caracteres especiales
3. En el caso de que el domicilio no tenga número, debe estar permitido al final del domicilio la palabra SN.

Ejemplo:

Dirección: Moras 850 Debe de ser válido.
Moras Debe de ser inválido.
Moras SN Debe de ser válido.
Moras y Comunal debe de ser inválido
Moras y Comunal SN debe de ser válido.

No he podido logar que se cumplan las condiciones, ya que si en la expersion permito letras y números, los casos del ejemplo sin números los toma válidos, si quito los números, esos casos me los toma como inválidos.

tarte de hacer un IF, con está expresion regular :

/(^[A-Za-z\s]+)(SN$)/

y me funciona, pero no no como incorporar los casos que tienen número y deben de ser válidos.

Alguna sugerencia??

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con expresiones regulares

Publicado por agustin (522 intervenciones) el 12/05/2017 00:25:56
Puedes buscar un espacio y comprobar si el siguiente caracter es un número, y si no lo es buscas otro espacio y repites el proceso hasta que encuentres un numero. Si llegas al final y no encuentras ningún número repites el proceso para buscar sn y si no la encuentras seria inválida. Hay muchas formas de conseguir lo mismo y depende de lo complejo que lo quieras hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar