#.net #regex #url-rewriting
Вопрос:
Может ли кто-нибудь помочь мне в написании регулярного выражения, соответствующего такой строке
Правила таковы:
- Все должно начинаться с nl
- Он может или не может иметь один параметр между nl и контактом (например, /abc/), но не ( /abc/def/).
- Он может иметь все что угодно после контакта
Примеры:
nl/abc/контакты —> разрешено
nl/контакт —> разрешено
nl/abc/def/контакт —> не допускается
nl/abc/контакт/mno —> разрешено
nl/abc/contactmno/ —> не допускается
Я попытался написать один («^nl(.?)/контакт(.)$»), но у него проблема в том, что он допускает любое количество косых черт между nl и контактом, поэтому мне просто нужна не более одной косой черты между ними
Ответ №1:
Я бы использовал:
^nl(?:/[^/] )?/contact(?:/[^/] )*$
ДЕМОНСТРАЦИЯ
Этот шаблон говорит, что он соответствует:
^ from the start of the path
nl starts with "nl"
(?:/[^/] )? any zero or one path parameter following
/contact /contact
(?:/[^/] )* followed by zero or more other path parameters
$ end of the input