Я совершенно потерян. Мне нужно регулярное выражение, которое может обнаружить любой из 4 начальных URL-адресов, как показано ниже.
^(.*http://.*|.*http%3A%2F%2F.*|.*https://.*|.*https%3A%2F%2F.*)$
И ... .
должен обнаруживать: (любой знак препинания, пробел или возврат) (3 раза букву w в верхнем или нижнем регистре) (одну точку) (что угодно)
И ... . что важно
Следует игнорировать, но НЕ исключать... . следующая точная строка (независимо от того, присутствует ли она на странице или нет)
http://www.w3.org
Что сложно для меня, потому что мне все равно нужно включить его в строку регулярного выражения, даже если оно игнорируется, иначе оно будет совпадать и будет найдено в
(.*http://.*|.*http%3A%2F%2F.*|.*https://.*|.*https%3A%2F%2F.*)
И моя цель - найти/сопоставить любой URL-адрес, кроме
http://www.w3.org
даже если он есть на странице, или если его нет. поэтому, если на странице есть только это:
http://www.w3.org
и никакой другой URL.. тогда он не должен совпадать.
Спасибо, Тайлер, но мои знания регулярных выражений почти нулевые, я могу знать только, что делают команды, когда я щелкаю по ним правой кнопкой мыши, чтобы выбрать действия, такие как в regulazy или regexr ((
Итак, я обновил свою команду в соответствии с предоставленным вам URL-адресом: href%3D%22http%3A%2F%2Fwww%2Edommermuth%2D1%2Ecom, и это работает:
https?(://|%3A%2F%2F)(?!www.w3.org)(.*)
Но из-за недостатка знаний я не понимаю, как это сделать ниже
«То, что вы можете сделать, это сделать часть http необязательной или должна соответствовать http или www или обоим. Этот тип регулярного выражения возник в другом вопросе, на который я недавно ответил — Несколько preg_replace RegEx для разных URL-адресов»
Я пытался добавить это, но это не работает: (www.)
Все, что мне сейчас не хватает, это обнаружение URL-адресов, начинающихся с www
(любой знак препинания, пробел или возврат) (3 раза больше буквы w в верхнем или нижнем регистре) (одна точка) (все, что угодно, пока не достигнет пробела или конца строки)