>  기사  >  백엔드 개발  >  정규식을 사용하여 선택적 HTTP 및 WWW 접두사가 있거나 없는 URL을 일치시키는 방법은 무엇입니까?

정규식을 사용하여 선택적 HTTP 및 WWW 접두사가 있거나 없는 URL을 일치시키는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-22 08:42:03565검색

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

선택적 HTTP 및 WWW 접두사를 사용하여 URL 일치

정규 표현식은 복잡한 패턴 일치 작업을 위한 강력한 도구입니다. 일치하는 URL의 경우 'http://www'를 포함하는지 여부와 같이 형식에 변형이 있는 경우가 많습니다. 접두어인지 여부.

정규 표현식을 사용한 솔루션

"http://www."가 있거나 없는 URL을 일치시키려면. 접두사에는 다음 정규식을 사용할 수 있습니다.

((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 $%_.-]*)? - 선택적 앵커

사용 예

주어진 문자열이 정규 표현식과 일치하는지 확인하려면 다음 구문을 사용하세요.

<code class="php">if(preg_match(~^$regex$~i, 'www.example.com/etcetc', $m))</code>

문자열이 URL 패턴과 일치하면 TRUE를 반환합니다. "http://www."가 있든 없든. 접두사.

위 내용은 정규식을 사용하여 선택적 HTTP 및 WWW 접두사가 있거나 없는 URL을 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.