У меня есть это регулярное выражение (в javascript) для обнаружения любого URL-адреса, но не тех, которые содержат «мой сайт» (также известный как «пример» из-за фильтра stackoverflow) в домене.
(?<protocol>\w+s?://)?(?<subdomain>\w+\.)(?<domain>(?!example)(\w+))(?<tls>\.\w{2,4})(?<querystring>/.*)?\S*
Примеры:
No detected
https://www.example.org/hello?
http://www.example.org/hello
https://blog.example.org/hello?
example.org
www.example.org
Detected
www.example.org
www.www.example.org
example.org
Вы можете увидеть это регулярное выражение и примеры на regex101 здесь
«mySite» - это пример имени моей сети, я просто хочу отбросить только формат www.mysite.com, а не тот пример, который вы говорите, потому что этот пример я хочу обнаружить с помощью регулярного выражения.
Итак, вы хотите отказаться только и только в том случае, если доменное имя www.mysite.com, а остальное вы хотите разрешить. Например. вы хотите разрешить www.mysite123.com. Это правильно? Это немного сбивает с толку относительно того, что вы хотите разрешить, а что нет. Можете ли вы добавить несколько разрешенных и запрещенных образцов? Это помогло бы
То, что вы говорите, правильно, я только что добавил примеры в сообщение, но с именем «пример», потому что фильтр stackoverflow для URL-адресов
Я думаю, что вам просто не хватает ? после (?<subdomain>\w+\.) в вашем регулярном выражении, поскольку вы хотите сделать субдомен также необязательным. Просто добавьте ? после (?<subdomain>\w+\.), и все должно работать так, как вы хотите.
Да, я пытаюсь это сделать, и регулярное выражение просто обнаруживает все примеры по ссылке, я хочу, чтобы регулярное выражение игнорировало все строки, содержащие «mysite».



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как уже обсуждалось с вами, нужно было позаботиться о нескольких вещах. Упоминая некоторые из них ниже,
*, поскольку вы хотели разрешить его ноль или более раз..* в конце регулярного выражения необходимо было заменить на \S*, чтобы избежать совпадения любых пробелов в URL-адресе.С этими изменениями ваше обновленное и рабочее регулярное выражение становится таким:
\b(?<protocol>\w+s?://)?(?<subdomain>\w+\.)*(?<domain>(?!mysite)(\w+))(?<tls>\.\w{2,4})(?<querystring>/\S*)?\b
Какова ваша точная проблема? Хотя я могу предположить, что вы также хотите отказаться от
http://www.aaamysiteaaa.com/hello. Это правильно?