2010-09-09 33 views

Trả lời

11

Hãy thử điều này:

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

Hoặc tổng quát (xem RFC 4647):

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

Cảm ơn! Thật không may, tuyến đường ASP.NET MVC2 của tôi không hoạt động:/ –

+0

@Rodrigo Waltenberg: Lưu ý rằng '^' và '$' đánh dấu sự bắt đầu và kết thúc của chuỗi tương ứng. Có lẽ bạn cần biểu thức chính quy đó mà không có các neo này. – Gumbo

+0

Điều gì sẽ phải được thực hiện để điều này có thể hoạt động với bash? với grep cụ thể hơn – Freedo

0

@Gumbo là đúng. Thử nghiệm:

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) 

kết quả cho thấy rằng nó được so khớp.

+2

Vui lòng không đăng các câu trả lời không như thế này. Nếu bạn có câu trả lời, hãy đăng nó. Nếu bạn đang nhận xét về câu trả lời, hãy đăng nhận xét về câu trả lời đó. – Oded

+0

Xin lỗi khiêm tốn. Tôi sẽ chăm sóc trong tương lai. Cảm ơn. :) – Tauquir

1

Nếu bạn muốn làm theo các định dạng RFC 4646 cho tên văn hóa (là người <languagecode2>-<country/regioncode2>, nơi <languagecode2> là mã ngôn ngữ và <country/regioncode2> là mã nét đẹp văn hóa)

Ví dụ: "en", "en-UK" "fr", "fr-FR", ...

Sử dụng Regex này:

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

C# code mẫu

Regex.IsMatch(culture, @"^[a-z]{2}(-[A-Z]{2})*$") 
Các vấn đề liên quan