2010-02-25 17 views
39

No estoy seguro de cómo puedo lograr esta expresión de coincidencia. Actualmente estoy usando,Cartas, números, guiones bajos y guiones bajos Regex

([A-Za-z0-9-]+) 

... que coincide con letras y números. También me gustaría hacer coincidir los guiones y los guiones bajos en la misma expresión. Alguien sabe como?

Me gustaría ser capaz de igualar product_name y producto nombre

Respuesta

70

Sólo escapar de los guiones para evitar que sean interpretados (no creo subrayado necesidades que escapan, pero no puede hacer daño). Usted no dice qué expresión regular está usando.

([A-Za-z0-9\-\_]+) 
+0

Como seguimiento, ¿cómo puedo aplicar las reglas anteriores excluyendo los períodos? Me gustaría ignorar, por ejemplo, image.png –

+4

@George: esta expresión regular ya no coincide con los puntos. –

+1

@George Por favor, no haga preguntas de seguimiento en ningún lado, excepto por nuevas preguntas. Los comentarios no son para eso; las respuestas no son para eso; si tiene una nueva pregunta, haga una nueva pregunta. –

21

Su expresión ya debe coincidir con guiones, porque el final - no será interpretado como un operador de rango (ya que el rango no tiene fin). Para agregar guiones, así, tratar:

([A-Za-z0-9_-]+) 
9

En función de la variante de expresiones regulares, es posible que pueda hacer simplemente esto:

([\w-]+) 

Además, es probable que no necesita los paréntesis, a no ser que esto es parte de una expresión mayor.

+0

Esto es para un archivo .htaccess, entonces necesito los paréntesis ya que como dijiste, está en una expresión más grande :) –

+0

Esto funcionó para mí, y creo que es un poco más limpio usando el atajo de 'palabra'. En realidad usé [\ w -] * –

0

De hecho, puede coincidir con todos los caracteres, pero es más seguro escapar del - para que quede claro que se toma literalmente.

Si está utilizando un POSIX variant se puede optar por utilizar:

([[:alnum:]\-_]+)

Sin embargo, un puesto que está incluyendo el subrayado lo haría simplemente utilizar:

([\w\-]+)

(trabaja en todas las variantes)

Cuestiones relacionadas