Как сделать специальное регулярное выражение в c#? - PullRequest
0 голосов
/ 06 января 2020

В моем проекте я хотел бы реализовать специальное регулярное выражение для строки. Например: мне нужно имя HypervisorName, например, «hvm01», сначала буквы, а затем цифры. Я использовал регулярное выражение, как показано ниже:

[RegularExpression(@"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0- 
9\-]*[A-Za-z0-9])$", ErrorMessage = "Virtual Machine name is not formatted correctly")]

Но я все еще могу добавить имя как «test», но в моем случае мне нужно оба вместе сначала буква, а затем число.

1 Ответ

1 голос
/ 06 января 2020

можете ли вы изменить регулярное выражение на что-то вроде ^[a-z]{3,}\\d{2,}$ и использовать RegexOptions.IgnoreCase?

Это проверит, что в строке есть не менее трех букв [a-z]{3,} в начале ^, за которыми следует минимум 2 цифры \\d{2,} и конец строки $.

Вы можете ограничить максимальное количество букв вторым параметром в скобках {}, например, [a-z]{3, 10} означает минимум 3 и максимум 10 букв

var r = new Regex("^[a-z]{3,}\\d{2,}$", RegexOptions.IgnoreCase);

matched: hostname123
wrong match: h1
matched: HHH12
wrong match: HHH 12
wrong match: host name
wrong match: host name123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...