2011-10-03 17 views
8

que tengo esta expresión regularexpresión regular sin caracteres

([A-Z],)* 

que debe coincidir con algo así como test, (con un espacio después de la coma)

Cómo puedo cambiar la expresión de expresiones regulares de modo que si hay cualquier carácter después del espacio, entonces no coincide. Por ejemplo si yo hubiera:

test, test 

Estoy mirando para hacer algo similar a

([A-Z], ~[A-Z])* 

Saludos

+4

Siempre debe especificar en qué idioma está utilizando el Regex de. Hay muchas "implementaciones" Regex diferentes alrededor. – xanatos

Respuesta

16

Usar la siguiente expresión regular:

^[A-Za-z]*, $ 

Explicación:

  • ^ coincide con el inicio de la cadena.
  • [A-Za-z]* coincide con 0 o más letras (no distingue entre mayúsculas y minúsculas) - reemplace * con + para requerir una o más letras.
  • , coincide con una coma seguida de un espacio.
  • $ coincide con el final de la cadena, por lo que si hay algo después de la coma y el espacio, la coincidencia fallará.

Como se ha mencionado, debe especificar qué idioma está utilizando cuando hace una pregunta de Regex, ya que hay muchas variedades diferentes que tienen su propia idiosincrasia.

0

No estoy seguro de qué motor/lenguaje regex está usando, pero a menudo hay algo así como un grupo de caracteres negativo [^a-z] que significa "todo lo que no sea un personaje".

1
^([A-Z]+,)?$ 

La diferencia entre la mina y el buñuelo es que va a coincidir con , y fallar por la cadena vacía, la mina coincidirá con la cadena vacía y fallan para ,. (y que el suyo es más insensible a las mayúsculas que el mío. Con el mío, tendrá que agregar mayúsculas y minúsculas a las opciones de su función regex, pero es como su ejemplo)

Cuestiones relacionadas