Título: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Kase en 20 Agosto 2011, 09:52 am pues eso... no consigo esta exprecion reguntar...
segun yo deberia ser \w*-*_* y devieria poder leer frases como hola-mundo hola_o__o no-tengo_nada_ke-decir sin embargo no me funciona D= el error es cono los - si tienen una letra despues de el guion me causa error.. Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Darkgold9 en 20 Agosto 2011, 10:15 am Citar \w*-*_* Con eso solo consigues una cadena seguida de guiones y de guiones bajos, ejemplo: holaquetal----___ , hola-_, hola etc Si quieres añadir caracteres entre los guiones tendrias que poner: \w*-*\w*_*\w* Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Kase en 20 Agosto 2011, 18:45 pm Con eso solo consigues una cadena seguida de guiones y de guiones bajos, ejemplo: holaquetal----___ , hola-_, hola etc Si quieres añadir caracteres entre los guiones tendrias que poner: \w*-*\w*_*\w* ya lo abia pobado de ese modo... pero ahora que lo pienso... creo que no le abia puesto el \ a cada w... x] me imagino que asi como le expresaste tendra que servir.. gracias! Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Valkyr en 22 Agosto 2011, 13:03 pm Tal y como ha puesto la expresión regular Darkgold9, reconocerías cadenas del tipo:
hola---que___tal? Sí quieres reconocer cadenas como las que has puesto en el primer post la expresión regular debería ser así: Código: (\w+(-|_)*)*\w+ Y te explico un poco el por qué. Según las cadenas de ejemplo que has puesto, todas deben comenzar por un caracter de \w, por tanto, hay que poner a la fuerza esto: \w+ con eso estamos reconociendo cadenas que contengan una o más letras o dígitos (sí mal no recuerdo \w incluía también los dígitos pero no estoy seguro). A continuación puede venir, o un guión bajo, o un guión normal y corriente, por tanto eso debe expresarse mediante el operador unión |. Por tanto la parte de la expresión: (-|_)* representa las cadenas de guiones y guiones bajos. Por último todo lo anterior se junta y se le pone un *, para especificar que todo eso debe aparecer cero o más veces. Para terminar se le añade un \w+ para que reconozca las cadenas que terminen con alguna sucesión de \w. Espero que lo hayas entendido. Para los próximos posts intenta escribirlos de una forma más limpia y con menos faltas a la hora de escribir. Saludos y suerte. Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: raul338 en 22 Agosto 2011, 16:57 pm Yo lo haría así mas fácil (para no caer en la recursividad de grupos)
Código: ^\w+[\-\_\w]*$ No acepta signos, por lo que no toma "hola---que___tal?" por el "?" al final, si queres agregarlo solo agrega el "?" entre los corchetes :P Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Valkyr en 22 Agosto 2011, 18:03 pm Yo lo haría así mas fácil (para no caer en la recursividad de grupos) Código: ^\w+[\-\_\w]*$ No acepta signos, por lo que no toma "hola---que___tal?" por el "?" al final, si queres agregarlo solo agrega el "?" entre los corchetes :P Cierto, mucha mejor expresión que la que se me ocurrió xD. Por otro lado el ejemplo de "hola---que___tal?" se me fue la cabeza al añadir la interrogación jaja. Saludos. Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: Kase en 23 Agosto 2011, 06:49 am al final lo resolvi asi xD
[A-Za-z1-9_-]* =P pero muchas gracias por sus soluciones! ahora que lo pienso, se podria esto, no? [\w_-]* porcierto el ^ al principio y el $ al final es para indicar que es una exprecion regular? seme hace raro por que donde las estoy utilizando (en django) tube que quitarle esos signos para que funcionara Título: Re: Exprecion regular.. letras-numero guines y guines bajos.. Publicado por: raul338 en 23 Agosto 2011, 14:38 pm no, el "^" indica principo de linea, el "$" indica fin de linea :) es porque si pones "????##@a_" te lo toma como valido usando tu expresion regular :)
La diferencia entre tu expresion regular y la que puse yo, es que en la mia si o si tiene que empezar por una letra o numero, en cambio la tuya no. La tuya toma "__hola" como valido :) |