딩관
오늘의 가치
딩관
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • Kotlin (3)
      • 스프링 (2)
      • 기본문법 (1)
    • Python (75)
      • 기초문법 (43)
      • Python 모듈 (2)
      • Python 문제 (8)
      • Django (21)
      • DRF (1)
    • JavaScript (14)
      • JavaScript (4)
      • Typescript (0)
      • Node.js (4)
      • nest.js (2)
      • express (4)
    • SQL (12)
    • 기초CS (24)
      • 알고리즘 (16)
      • HTTP (4)
      • OperationSystem (2)
      • Linux (1)
    • 프로젝트 (8)
      • fake-trip (3)
      • 위코드 (5)
    • 잡동사니 (12)
    • Git (4)
      • git (1)
      • Git-hub (3)
    • 개발자 정진관 (12)
      • 개발자 이야기 (5)
      • 처음은 누구나 힘들다. (4)
      • 넌 이것도 이해 못하니? (3)
    • JAVA (5)
      • spring (2)
    • HTML & CSS (5)
    • Docker (1)
    • k8s (0)
      • k8s (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트
  • Django
  • 파이썬
  • 위코드
  • Data Structure
  • 개발자
  • java
  • 알고리즘
  • http
  • wecode
  • 장고
  • JavaScript
  • MYSQL
  • 자료구조
  • Database
  • SQL
  • 백엔드
  • TypeScript
  • python
  • Node.js

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
딩관

오늘의 가치

Python/Python 문제

(4) URL 판별하기 (저장용)

2022. 5. 7. 19:10

문제

  • URL이 올바르면 True, 잘못되었으면 False 출력
  • url은 http://    or      https://로 시작
  • 도메인은 도메인.최상위도메인 형식이며 영문 대소문자, 숫자, -로 되어 있어야 함
  • 도메인 이하 경로는 /로 구분하고, 영문 대소문자, 숫자, -, _, ., ?, =을 사용함

 

정답

import re
 
p = re.compile('^https?://[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/[a-zA-Z0-9-_/=.?]+$')
url = input()
print(p.match(url) !=None )

기본정보

  • compile 만들기
  • url 변수에 input()으로 입력값을 받는다
  • print(p.match(url) !=None)으로 None 이 아닐때만 출력

1단계 시작 문자열 htttp:// or https:// 검사하기

 

#문자열 표시인 '' 는 전체의 앞과 뒤에 붙음으로 생략

https?:// # 를 만들어 s가 1개만 있거나 없는 두 수를 모두 충족

2단계 도메인 . 최상위도메인 값 검사하기

[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+
  • 가운데 보면 \. 이 있다 도메인과 최상위 도메인을 구별하는 구간이다.
  • [a-zA-Z0-9-]+    는 기본 도메인만 판별 (-도 사용가능하다)
  • [a-zA-Z0-9-.]+    은 앞과 같지만 최상위 도메인은 여러단계일 수 있으므로 . 도 포함시켰다

 

3단계 도메인 이하 값 검사하기

/[a-zA-Z0-9-_/=.?]+$
  • /를 시작으로 도메인 이하값을 구분 지어준다
  • 도메인 이하값의 조건은 대소문자, 숫자, -, _, ., ?, = 이였지만 여러개의 중복을 허용하기위해 /도 포함시켰다.
  • 도메인 이하값은 마지막에 나오기 때문에 마지막에 $를 붙였다.

 

사실 이문제는 이해하고 풀었지만

정규표현식의 반만 이해하고 활용을 못하는 단계이다.

하지만 도메인 검사값이나 이메일 검사값은 실제로 계속 쓰일 것 같기에 블로깅한다.

'Python > Python 문제' 카테고리의 다른 글

잘못된 케이스로 알아보는 Parameter  (0) 2022.05.29
(3)별로 사각형 간단하게 그리기  (0) 2022.05.06
(2)포켓몬 종류 찾기 (리스트 & 세트)  (0) 2022.05.06
생애 첫 코딩테스트 문제  (0) 2022.04.28
(3)클래스 메서드와 속성으로 시계 만들기  (0) 2022.04.14
    'Python/Python 문제' 카테고리의 다른 글
    • 잘못된 케이스로 알아보는 Parameter
    • (3)별로 사각형 간단하게 그리기
    • (2)포켓몬 종류 찾기 (리스트 & 세트)
    • 생애 첫 코딩테스트 문제
    딩관
    딩관

    티스토리툴바