Регулярное выражение, которое проверяет строку, состоит из 3-4 символов, за которыми следует точка с запятой - PullRequest
0 голосов
/ 24 декабря 2018

Я хотел бы сделать регулярное выражение для проверки строки в следующем формате:

".xml;.mp4;.webm;.wmv;.ogg"

формат файла, разделенный точкой с запятой.

Каков наилучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Примерно так, но нужно проверить только один формат (если список имеет только один формат, за ним будет точка с запятой).

^(?:\.[a-zA-Z0-9]+;)*\.[a-zA-Z0-9]+$
0 голосов
/ 24 декабря 2018

Мы можем попробовать использовать шаблон ^(?:\.[A-Za-z0-9]{3,4})(?:;\.[A-Za-z0-9]{3,4})*$:

Regex regex = new Regex(@"^(?:\.[A-Za-z0-9]{3,4})(?:;\.[A-Za-z0-9]{3,4})*$");
Match match = regex.Match(".xml;.mp4;.webm;.wmv;.ogg");
if (match.Success)
{
   Console.WriteLine("MATCH");
}

Объяснение:

^                         from the start of the string
(?:\.[A-Za-z0-9]{3,4})    match a dot followed by 3-4 alphanumeric characters
(?:;\.[A-Za-z0-9]{3,4})*  then match semicolon, followed by dot and 3-4 alphanumeric
                          characters, that quantity zero or more times
$                         match the end of the string

Примечание: я использовал ?: в терминах в скобках, что в теорииследует указать движку регулярных выражений , а не для захвата этих терминов.Это может улучшить производительность, хотя, возможно, за счет того, что шаблон немного менее читабелен.

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