Regex для сопоставления комбинаций портов коммутатора в поле InfoPath - PullRequest
0 голосов
/ 14 сентября 2018

Я делаю генератор конфигурации коммутатора и хочу использовать регулярное выражение, чтобы сопоставить вводимые пользователем данные со списком портов, чтобы убедиться, что он действителен.Порты могут быть от 1/1-48 до 4/1-48.

1 / 1-48, 2 / 1-48, 3 / 1-48, 4 / 1-48 Любая комбинация, которая попадает внутрь, но не дублирует какой-либо один порт.Например, 1 / 1-20 подпадает под это, но не может быть 1 / 20,1 / 20, поскольку оно дублирует.Чтобы помочь объяснить, это 4 сетевых коммутатора, которые сложены.поэтому мы должны добавить порты из всех четырех коммутаторов в этом стеке в VLAN.4 коммутатора, 48 портов.может быть любой комбо.Синтаксис для добавления портов содержит запятую в качестве разделителя и может быть в диапазоне или в отдельных портах.то есть 1 / 1,1 / 2,2 / 2,2 / 3,2 / 4 или 1 / 1-2,2 / 2-4 делает то же самое.Кроме того, мне нужно учесть вероятность того, что это всего 1 коммутатор в стеке, который в этом случае будет просто 1-48 или 1,2,3,4,5,9-12 в этом формате.

Проблема в том, чтобы обнаружить дубликаты портов, чтобы они были помечены.Я делаю это в форме инфопата.Было бы разумно разделить поле?разделителем, который в данном случае является запятой?

Пока что с некоторой помощью у меня есть:

^[1-4]/[1-4]-(0?[1-9]|[1-3][0-9]|4[0-8])(?:,[1-4]/[1-4]-(0?[1-9]|[1-3][0-9]|4[0-8]))*$

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