"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 정규식을 사용하여 URL을 일치시키는 방법은 무엇입니까?

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

2024년 11월 10일에 게시됨
검색:919

How to Match URLs Using Regular Expressions?

정규 표현식과 URL 일치

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

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

((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 함수에 전달하세요. 예:

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

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

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

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

릴리스 선언문 이 글은 1729557858에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3