Me parece que asi anda:

^-?(?:[a-zA-Z0-9]+-?)*$

Si queres evitar que empiece con un guion, sacale el "-?" del principio:

^(?:[a-zA-Z0-9]+-?)*$

Explicacion rapida de la primera:

^           comienzo del texto
-?          un guio opcional (0 o 1 ocurrencia)
(?:         comienzo de un grupo, que no es capturado (no es importante)
[a-zA-Z0-9] algun caracter de la "a" a la "z" (minuscula), de la "A" a la
"Z" (mayuscula), o del 0 al 9
+           lo que esta entre "[" y "]", que pueda ser repetido entre 1 e
infinitas veces (ej: asdASD123)
-?          un guio opcional (0 o 1 ocurrencia)
)*          fin del grupo iniciado antes, y le decis que se pueda repetir 0
o mas veces
$           forzar fin del texto


Espero que te sirva,
Abrazo!


2010/8/25 Pablo Erba <[email protected]>

> me anduvo perfecto a lo que habia mencionado
>
> me tomo el atrevimiento de preguntarte
>
> yo quiero permitir "-" en cualquier parte (asi anda bien) pero no "--" (dos
> juntos)
> alguna idea?
>
> slds!
>
>
> ---------- Mensaje reenviado ----------
> De: Diego Jancic <[email protected]>
> Fecha: 25 de agosto de 2010 10:10
> Asunto: [puntonet] ot reg ex
> Para: [email protected]
>
>
>
> Perdon, falto ponerle el inicio y fin de texto para forzar que no haya nada
> mas que eso:
>
> ^[a-zA-Z0-9-]*$
>
> Abrazo!
>
> 2010/8/25 Diego Jancic <[email protected]>
>
>  Seria asi:
>>
>> [a-zA-Z0-9-]*
>>
>> si queres forzar que al menos haya un caracter, hacelo asi:
>>
>> [a-zA-Z0-9-]+
>>
>> Podes usar http://sourceforge.net/projects/regulator/ para probarlas,
>> pero no hay ningun programa que te las construya...
>>
>> Saludos
>> Diego
>>
>>  2010/8/25 Pablo Erba <[email protected]>
>>
>>> Buenas, disculpen el off topic, necesito una regular expression para un
>>> campo que solo acepte numeros, letras y el signo "-" nada mas. conocen
>>> alguna herramienta para contruirla?
>>>
>>>
>>> muchas gracias!
>>>
>>>
>>
>
>

Responder a