>백엔드 개발 >PHP 튜토리얼 >정규식을 사용하여 URL을 일치시키는 방법은 무엇입니까?

정규식을 사용하여 URL을 일치시키는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-22 08:45:03444검색

How to Match URLs Using Regular Expressions?

정규 표현식과 URL 일치

정규 표현식은 처음에는 어려울 수 있지만 다양한 데이터 유형에 대한 강력한 패턴 일치 기능을 제공합니다. URL을 추출하는 과정에서 다양한 URL 형식을 수용할 수 있는 유연한 패턴이 필요합니다.

주요 프로토콜이 있거나 없는 URL을 캡처할 수 있는 강력한 정규식(예: "http://www" 또는 " www") is:

((https?|ftp)://)? // Optional SCHEME
([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)? // Optional User and Pass
([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address
(:[0-9]{2,5})? // Optional Port
(/([a-z0-9+$_%-]\.?)+)*/? // Path
(\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)? // Optional GET Query
(#[a-z_.-][a-z0-9+$%_.-]*)? // Optional Anchor

PHP에서 이 표현식을 사용하려면 이를 큰따옴표로 묶고 평가하려는 URL과 함께 preg_match 함수에 전달하세요. 예:

<code class="php">$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL without protocol';
}</code>

마찬가지로 프로토콜이 있는 URL의 경우:

<code class="php">$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
    echo 'Matched URL with protocol';
}</code>

이 패턴은 다양한 URL 형식을 포괄하는 동시에 "와 같은 문자가 포함된 잠재적인 악의적 입력으로부터 보호해야 합니다. /".

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

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