2008-12-02 21 views
16

Necesito una expresión regular para el siguiente patrón:expresiones regulares carácter concordante alfa seguida de 4 caracteres alfanuméricos

  • total de 5 caracteres (alfa y numérico, nada más).

  • primer carácter debe ser una letra (A, B o sólo C)

  • los 4 caracteres restantes pueden ser el número o letra.

Clarifcation: la primera letra sólo puede ser A, B o C.

Ejemplos:

  • A1234 es válida
  • D1234 no es válido
+0

¿Por qué esta votación ha sido rechazada? –

+0

No era yo, pero me imagino que era el título pobre. – Whytespot

+1

@Timothy: no estoy de acuerdo con eso, pero parece que hay personas que votan por preguntas "simples". Personalmente no lo haría, porque todo el mundo era novato en algún momento. –

Respuesta

35

EDIT: Grrr ... expresiones regulares editado debido a la nueva "aclaración" :)

^[A-C][a-zA-Z0-9]{4}$ 

EDITAR: Para explicar el Regex anterior en inglés ...

^ y $ media "De principio a fin" (Esto asegura que toda la cadena debe coincidir perfectamente)

[A-C] significa "empareja A, B o C"

[a-zA-Z0-9]{4} medios "Match 4 las letras minúsculas, mayúsculas, números o"

+0

NB. Esto solo coincidirá con este patrón si está en una línea separada. –

+0

@mats - o en una variable separada. –

+0

¿Qué quiere decir con el comentario de la línea separada? Esta expresión regular es perfecta :) –

6

Algo a lo largo de las líneas de:

[A-C][A-Za-z0-9]{4} 

Aconsejaría echar un vistazo a http://regexlib.com/CheatSheet.aspx si no está familiarizado con las expresiones regulares y tratar de hacer este tipo de expresiones regulares simples usted mismo.

También hay muchas aplicaciones de prueba de expresiones regulares en línea como: http://regexlib.com/RETester.aspx que le permiten probar sus expresiones regulares sin escribir ningún código.

2

¿Quiere decir que la primera letra debe ser A, B o C? ¿O puede ser alguna carta?

Si tiene que ser un A, B o C (distingue entre mayúsculas y minúsculas), esta sería la expresión regular.

[A-C][a-zA-Z0-9]{4} 

De lo contrario, las otras respuestas aquí son suficientes.

0

En caso de que esto no es expresiones regulares de Perl que estamos hablando, se necesita un poco de cortar y pegar:

[ABC][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9] 

que cortar y pegar "[a-zA-Z0-9]" cuatro veces.

+0

El siguiente trabajo de regex para JavaScript y .NET ... ¿está diciendo que Perl no es compatible con {4}, o está diciendo que otros lenguajes no? –

+0

@Timothy - perl admite el {count}. En un momento, grep regular no lo hizo, pero egrep sí. Así que los diferentes idiomas tienen diferentes versiones de "expresiones regulares" dependiendo de si copiaron de grep, egrep o perl (o algo más). –

+0

Gracias - No conozco la expresión regular de Perl en profundidad, así que me lo estaba preguntando debido a esta respuesta. –

0
/[ABC](?i:[a-z0-9]{4})/ 
0

Prueba esto:

\<[ABC]\([a-zA-Z0-9]{4}\)\> 
1

Esta respuesta es correcta, pero quería añadir que se puede acortar un poco con lo siguiente.

^[A-C]\w{4}$ 

\ w significa cualquier carácter alphaNumeric.

Cuestiones relacionadas