У меня есть соглашение об именовании токенов (простых строк), которому необходимо следовать. Двойные черточки являются разделителями разных частей. Например:
ActiveDirectory--User--<LastName>--Password
ActiveDirectory--App--<DisplayName>--Secret
Теперь я хочу проверить, соответствует ли токен соглашению об именах.
Соглашение о присвоении имен гласит, что токен должен содержать только a-z, A-Z, 0-9 или тире (-). Двойные тире не допускаются внутри <CustomName>
.
Регулярное выражение
^ActiveDirectory--User--([a-zA-Z0-9-]*)--Password$
работает нормально, если в качестве ввода указан следующий токен
ActiveDirectory--User--Smith--Password
но он не проверяет двойные тире, как
ActiveDirectory--User--Sm--ith--Password
.
В этом случае слово "Sm - ith" будет группой моего совпадения. Желаемое состояние должно быть таким, чтобы не было совпадения.
Я уже пытался использовать отрицательный Look Ahead (отрицание) в сочетании с обратными ссылками. Но я должен стать экспертом по регулярным выражениям, прежде чем решать такую сложную задачу.
Как мне решить эту проблему?