«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сопоставить URL-адреса с дополнительными префиксами HTTP и WWW или без них с помощью регулярного выражения?

Как сопоставить URL-адреса с дополнительными префиксами HTTP и WWW или без них с помощью регулярного выражения?

Опубликовано 9 ноября 2024 г.
Просматривать:507

How to Match URLs with or Without Optional HTTP and WWW Prefixes Using a Regular Expression?

Сопоставление URL-адресов с дополнительными префиксами HTTP и WWW

Регулярные выражения — это мощные инструменты для сложных задач сопоставления с образцом. Когда дело доходит до сопоставления URL-адресов, формат часто различается, например, включает ли он «http://www». префикс или нет.

Решение с использованием регулярного выражения

Для сопоставления URL-адресов с http://www или без него. префикса, можно использовать следующее регулярное выражение:

((https?|ftp)://)?
([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)?
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))
(:[0-9]{2,5})?
(/([a-z0-9 $_%-]\.?) )*/?
(\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)?
(#a-z_.-][a-z0-9 $%_.-]*)?

Разложение выражения:

  • (https?|ftp):// - Необязательный идентификатор протокола (http или ftp)
  • ([a-z0-9 !*(),;?&=$_ .-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? - Необязательный пользователь и пароль
  • ([ a-z0-9-.]*).(([a-z]{2,4})|([0-9]{1,3}.([0-9]{1,3}).([ 0-9]{1,3}))) — имя хоста или IP-адрес
  • (:[0-9]{2,5})? — необязательный номер порта
  • (/([a-z0-9 $_%-].?))*/? - Необязательный путь
  • (?a-z &$ _.-*)? – необязательная строка запроса
  • (#a-z_.-][a-z0-9 $%_.-]*)? – необязательная якорь

Пример использования

Чтобы проверить, соответствует ли заданная строка регулярному выражению, используйте следующий синтаксис:

if(preg_match(~^$regex$~i, 'www.example.com/etcetc', $m))

Это вернет TRUE, если строка соответствует шаблону URL-адреса с «http:/» или без него. /www.» префикс.

Заявление о выпуске Эта статья воспроизводится: 1729557683 Если есть какие -либо нарушения, пожалуйста, свяжитесь с учебным заведением[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3