Измените регулярное выражение, чтобы соответствовать различным кодам языка ISO - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть строки, которые я хочу сопоставить с помощью регулярного выражения:

  • es-us
  • fr (0 тире)
  • fr-ca(1 тире)
  • xx-xx-xx (2 тире)

У меня есть начальная точка регулярного выражения: ([a-z])+-([a-z])+-([a-z])+, что соответствует приведенному выше примеру xx-xx-xx,но строки с 1 тире или меньше исключены.Итак, как я могу сделать так, чтобы он также совпадал с fr-ca или fr или en-us в приведенных выше примерах?ПРИМЕЧАНИЕ: должны быть разрешены ВСЕ символы, а не только fr-ca или fr

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Чтобы также иметь соответствующий регистр для любого сегмента, используйте:

^([a-z]{2}|[A-Z]{2})(?:-([a-z]{2}|[A-Z]{2})){0,2}$
0 голосов
/ 24 сентября 2018

Вероятно, это дубликат, но я не уверен, что я буду искать.В любом случае вот простой ответ: ^[a-zA-Z]{2}(?:-[a-zA-Z]{2}){0,2}$

Демо

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