Какое регулярное выражение соответствует названиям культур? - PullRequest
6 голосов
/ 09 сентября 2010

Я бы хотел использовать регулярное выражение для фильтрации названий культур (например, en-US или pt-BR).У кого-нибудь есть идеи?

Ответы [ 3 ]

13 голосов
/ 09 сентября 2010

Попробуйте это:

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

или более общий (см. RFC 4647 ):

^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$
1 голос
/ 30 июня 2016

Если вы хотите следовать формату RFC 4646 для названия культуры (например, <languagecode2>-<country/regioncode2>, где <languagecode2> - код языка и <country/regioncode2> - код субкультуры)

Пример : "en", "en-UK", "fr", "fr-FR", ...

Используйте это регулярное выражение:

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

Пример кода C #

Regex.IsMatch(culture, @"^[a-z]{2}(-[A-Z]{2})*$")
0 голосов
/ 09 сентября 2010

@ Гамбо прав. Тест:

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)

результат показывает, что оно соответствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...