Мы можем попробовать использовать шаблон ^(?:\.[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
Примечание: я использовал ?:
в терминах в скобках, что в теорииследует указать движку регулярных выражений , а не для захвата этих терминов.Это может улучшить производительность, хотя, возможно, за счет того, что шаблон немного менее читабелен.