URL 정규식 테스터
검증된 URL 정규식(http/https, 도메인, IP, localhost)을 받아 URL을 한 줄씩 검사하고, 텍스트에서 링크를 추출하고, JS, 파이썬, PHP, Java 코드를 복사하세요.
각 줄은 테스트하기 전에 앞뒤 공백을 지웁니다. 스킴은 소문자여야 하며 포트는 1~5자리 숫자인지만 확인합니다.
테스트는 JavaScript 정규식으로 실행하며, 코드 예시는 패턴을 JavaScript용으로 옮긴 것입니다.
| 줄 | 입력 | 결과 | 실패한 이유 |
|---|---|---|---|
| 1 | https://example.com | 유효 | |
| 2 | https://www.example.co.uk/path?q=1#top | 유효 | |
| 3 | http://localhost:3000/api | 유효 | |
| 4 | http://192.168.0.1:8080 | 유효 | |
| 5 | example.com/page | 유효하지 않음 | http:// 또는 https://로 시작해야 합니다 |
| 6 | ftp://files.example.com | 유효하지 않음 | ftp://은(는) 이 패턴에서 허용하지 않습니다 |
| 7 | https://exa mple.com | 유효하지 않음 | 공백이 들어 있습니다. %20으로 인코딩하세요 |
이 도구는 여러 URL 형식 패턴을 제공하고, 내가 넣은 URL 중 어느 것을 받아들이는지 정확히 보여 주며, 그것을 코드로 써 줍니다. 도메인 형태의 호스트, localhost, IPv4 주소와 선택적 포트·경로가 있는 http나 https의 제한된 웹 주소 패턴, 스킴을 생략할 수 있는 버전, ftp까지 허용하는 짧고 느슨한 패턴, 그리고 흘러가는 텍스트에서 링크를 뽑아내는 추출기 중에서 고르세요.
사용 방법
- 폼이나 파서가 받아들여야 하는 형식에 맞는 패턴을 고릅니다.
- URL을 한 줄에 하나씩 붙여 넣거나, "링크 찾기"로 바꾸고 아무 텍스트나 붙여 넣습니다.
- 유효와 유효하지 않음 개수, 그리고 거부된 줄마다 주어진 이유를 확인합니다.
- 언어를 고르고 코드 예시를 복사합니다.
계산식
^https?://(?:(?:label\.)+tld|localhost|IPv4)(?::\d{1,5})?(?:[/?#]\S*)?$
레이블은 하이픈으로 시작하거나 끝나지 않는 1~63자의 영문자, 숫자, 하이픈입니다. 최상위 도메인은 2~63자의 영문자이거나 퓨니코드 xn-- 이름입니다. IPv4의 각 숫자는 0~255로 제한됩니다. 호스트 뒤에는 선택적 :포트가 오고, 그다음에는 /, ?, #로 시작하는 공백 없는 문자열이 올 수 있습니다. 이 패턴들은 URL 표준 전체, IDNA 유효성, DNS 조회, IPv6 호스트 파서를 구현하지 않습니다. 정규식 엔진마다 공백 클래스가 다르므로 ASCII가 아닌 입력은 실제로 쓸 언어에서 테스트하세요. 표에는 최대 400행까지 표시합니다.
예시
기본 목록과 웹 주소를 쓰면 일곱 줄 중 4줄이 통과합니다. https://example.com, https://www.example.co.uk/path?q=1#top, http://localhost:3000/api, http://192.168.0.1:8080입니다. example.com/page는 스킴이 없고, ftp://files.example.com은 허용되지 않는 스킴이며, https://exa mple.com에는 공백이 있습니다. 스킴을 생략할 수 있게 하면 도메인만 있는 주소도 통과합니다(유효 5개). 짧고 느슨한 패턴도 5개인데, 추가로 통과하는 것은 ftp 링크입니다.
자주 묻는 질문
URL을 검증하는 데 정규식이면 충분한가요?
폼 입력란에는 좋은 1차 검사입니다. 리다이렉트나 서버 측 요청처럼 보안과 관련된 경우에는 실제 파서(JavaScript의 new URL(), 파이썬의 urllib.parse)로 URL을 분석하고 그 결과의 스킴과 호스트를 확인하세요.
대문자 HTTP://가 거부되는 이유는 무엇인가요?
패턴은 소문자로 작성되어 있습니다. 스킴은 대소문자를 구분하지 않으므로 대문자를 받으려면 i 플래그를 추가하세요(파이썬은 re.IGNORECASE, PHP는 /i, Java는 Pattern.CASE_INSENSITIVE).
포트 99999는 거부하나요?
아니요. 1~5자리 숫자인지만 확인합니다. 유효한 TCP 포트는 0부터 65535까지이므로 중요하다면 일치한 뒤에 숫자를 따로 비교하세요.
추출기가 닫는 괄호를 빼 버린 이유는 무엇인가요?
글 속에서는 링크 뒤에 문장에 속하는 ")"나 마침표가 오는 경우가 많아서 마지막 문자는 문장 부호나 닫는 괄호가 될 수 없습니다. 위키백과식 링크처럼 실제로 ")"로 끝나는 링크는 그 괄호가 빠지므로 필요하면 다시 붙이세요.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/url-regex-tool/
인용·퍼가기
kakaoCalc. (2026, November 8). URL 정규식 테스터. https://kakao.mobile/ko/tools/url-regex-tool/
“URL 정규식 테스터.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/url-regex-tool/.