>백엔드 개발 >PHP 튜토리얼 >정규식을 사용하여 다양한 형식의 URL을 감지하는 방법은 무엇입니까?

정규식을 사용하여 다양한 형식의 URL을 감지하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-22 08:45:30656검색

How to Detect URLs of Varying Formats Using Regular Expressions?

정규식을 사용하여 다양한 형식의 URL 감지

정규식은 URL을 포함한 복잡한 문자열에서 데이터를 추출하는 강력한 방법을 제공합니다. "http://www" 접두사를 포함하는 URL로 작업하는지 여부에 관계없이 포괄적인 정규식은 사용자의 요구를 충족할 수 있습니다.

다음 표현식은 "http://www" 접두사가 있거나 없는 URL과 일치하도록 제작되었습니다. ://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)://"
  • 사용자 및 비밀번호: "([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)"
  • 호스트 또는 IP 주소: "([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 $_%-].?) )*/?"
  • GET 쿼리: "(?a-z &$_.-*)?"
  • Anchor: "(#a-z_.-*)?"

이 표현식을 활용하려면 아래 PHP 코드를 사용하면 됩니다. :

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

if(preg_match("~^$regex$~i", 'http://www.example.com/etcetc', $m))
    var_dump($m);

이 코드는 "http://www" 접두사의 존재 여부에 관계없이 두 URL 모두와 성공적으로 일치합니다.

위 내용은 정규식을 사용하여 다양한 형식의 URL을 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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