Сегмент правила регулярных выражений не работает должным образом при повторении - PullRequest
0 голосов
/ 06 декабря 2018

Я работаю над регулярным выражением JavaScript, чтобы проверить правильность форматирования URL.Моя текущая итерация:

^(?!([^\?\s]*\?[^\?\s]*?as_asd=[^\?\s]*-_-[^\?\s]*-_-[^\?\s]*(-_-)?[^\?\s]*)).*$

С тестовой строкой:

https://www.asdf.com/?as_asd=asdf-_-asdf-_-asdf-_-asdf

Я обертываю все в отрицательный прогноз, чтобы предотвратить сопоставление, если URL-адрес не нарушает формат.Все работает как положено до второй -_-.Я ожидаю, что [^\?\s]* должен предотвращать ввод пробела или знака вопроса, не вызывая совпадения, но добавление после второго -_- или дополнительного (-_-)? не вызывает совпадения.

Я проверил это на нескольких отладчиках регулярных выражений, но все еще не могу понять это.Что я недопонимаю?Спасибо!

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