2010-09-09 13 views

Respuesta

11

Prueba esto:

^[a-z]{2}-[A-Z]{2}$ 

o más generales (véase RFC 4647):

^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$ 
+0

Gracias! Lamentablemente, mi ruta ASP.NET MVC2 no funciona de todos modos:/ –

+0

@Rodrigo Waltenberg: Tenga en cuenta que '^' y '$' marcan el comienzo y el final de la cadena, respectivamente. Tal vez necesites esa expresión regular sin estos anclajes. – Gumbo

+0

¿Qué debería hacerse para que esto funcione con bash? con grep más específicamente – Freedo

0

@Gumbo es correcto. Una prueba:

In [1]: import re 

In [2]: reg = re.compile("^[a-z]{2}-[A-Z]{2}$") 

In [3]: url = 'en-US' 

In [4]: m = reg.match(url) 

el resultado muestra que coincide.

+2

Por favor absténgase de publicar respuestas como esta. Si tienes una respuesta, publícala. Si está comentando una respuesta, publique un comentario sobre esa respuesta. – Oded

+0

Disculpas humildes. Me ocuparé en el futuro. Gracias. :) – Tauquir

1

Si quieres seguir el formato RFC 4646 para el nombre de la cultura (que es <languagecode2>-<country/regioncode2>, donde <languagecode2> es el código de idioma y <country/regioncode2> es el código de la subcultura)

Ejemplo: "en", "en-Reino Unido" "fr", "fr-FR", ...

Utilice esta expresión regular:

^[a-z]{2}(-[A-Z]{2})* 

C# código de muestra

Regex.IsMatch(culture, @"^[a-z]{2}(-[A-Z]{2})*$") 
Cuestiones relacionadas