Regex для нескольких MAC-адресов, разделенных запятой? - PullRequest
3 голосов
/ 09 июля 2011

Я хотел бы знать правильное регулярное выражение для сопоставления нескольких MAC-адресов, разделенных любым разделителем, таким как запятая.

Регулярное выражение для одного MAC-адреса будет выглядеть следующим образом: ^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$.

Так что для нескольких MAC-адресов, разделенных запятыми, я подумал, что ^(([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2},?)){+}$ сделает все возможное.* Где я иду не так?Спасибо за любую помощь, спасибо.

Редактировать: Некоторые люди спрашивали о том, что пошло не так.Ну, проще говоря, регулярное выражение не работает.Допустим, я ввел один (действительный) MAC-адрес, он помечен как недопустимый MAC-адрес.То же самое касается нескольких MAC-адресов, разделенных запятой.

Регулярное выражение необходимо для валидатора для текстового поля на странице ASP .NET.Если нужно больше деталей, дайте мне знать.

Ответы [ 3 ]

4 голосов
/ 09 июля 2011

^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}(,([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2})*$

См. Regex для списка с разделителями-запятыми для получения подробной информации о создании регулярного выражения для соответствия списку с разделителями. Как правило, вам нужно поставить регулярное выражение для MAC-адреса, за которым следует группа, содержащая запятую, и регулярное выражение для MAC-адреса, которое соответствует нулю или более раз. В вашей попытке решения запятая не обязательна.

0 голосов
/ 09 июля 2011
^(?:((?:[a-fA-F0-9]{2}[-:]){5}(?:[a-fA-F0-9]{2}))(?:,|$)))+$

Это гарантирует, что октеты разделены : или -.Пробелы или другие символы не допускаются.Первая группа будет захватывать все mac-адреса.Совпадение будет захватывать всю строку или не совпадать, если оно недопустимо.

0 голосов
/ 09 июля 2011

Попробуйте это ^ ([0-9a-fA-F] {2} [: -]) {5} [0-9a-fA-F] {2} (, ([0-9a-fA-F ] {2} [: -]) {5} [0-9a-FA-F] {2}) +

...