2010-09-09 62 views

回答

11

試試這個:

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

或者更一般的(見RFC 4647):

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

謝謝!不幸的是,我的ASP.NET MVC2路線無法正常工作:/ – 2010-09-09 12:35:48

+0

@Rodrigo Waltenberg:請注意,'^'和'$'分別標記字符串的開頭和結尾。也許你需要沒有這些錨點的正則表達式。 – Gumbo 2010-09-09 13:12:28

+0

需要做什麼才能使用bash?與grep更具體 – Freedo 2018-01-14 07:45:50

0

@Gumbo是正確的。測試:

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) 

結果表明它匹配。

+2

請不要發佈這樣的答案。如果您有答案,請發佈。如果您對答案發表評論,請對該答案發表評論。 – Oded 2010-09-09 12:58:04

+0

謙虛的道歉。我將來會保重的。謝謝。 :) – Tauquir 2010-09-23 06:59:39

1

如果你想遵循文化名RFC 4646格式(誰是<languagecode2>-<country/regioncode2>,其中<languagecode2>爲語言代碼和<country/regioncode2>是繼代碼)

:「恩」,「EN-UK」 , 「FR」, 「FR-FR」,...

使用這個表達式:

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

C#代碼示例

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