정규표현식

rachel·2021년 9월 2일
0

알고리즘_개념

목록 보기
1/1

사용방법

  • 파이썬

    import re : re = regular expression라는 라이브러리 사용

    re.findall(정규표현식, string) 으로 사용

    regex = r'0\d{1,2}[ -]?\d{3,4}[ -]?\d{3,4}'  
    
    search_target = '''Luke Skywarker 02-123-4567 luke@daum.net
    다스베이더 070-9999-9999 darth_vader@gmail.com
    princess leia 010 2454 3457 leia@gmail.com'''
    
    import re
    result = re.findall(regex, search_target)
    print("\n".join(result))   //모든 결과를 개행해서 보여줌

Syntax


Practice

< 문제 1 > 
=> 전화번호 선택하기
010-000-00000
010.000.00000
010 000 00000
02-000-00000

< 풀이 >
step1 : \d\d\d-\d\d\d-\d\d\d\d
step2 : \d{2,3}[,. ]\d{3}[,. ]\d{4}
< 문제 2 > 
=> email 선택하기
dream.coder.ellie@gmail.com
hello@daum.net
hello@daum.co.kr

< 풀이 >
내답 : \w+.\w+.\w+@\w+.\w+.\w+
정답 : [a-zA-Z0-9_.+-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9.]+
	-> @앞: 문자,숫자,특수문자들이 한개이상 반복될 수 있음
	-> @뒤: 문자,숫자들이 한개이상 반복될 수 있음 + 특수문자 . + 문자,숫자들이 한개이상 반복될 수 있음
< 문제 3 > 
=> 유튜브 주소 뒤에 아이디만 선택하기
https://www.youtu.be/-ZClicWm0zM
https://youtu.be/-ZClicWm0zM
youtu.be/-ZClicWm0zM

< 풀이 >
내답 : (.*youtu.be)?
정답 : (?:https?:\/\/)?(?:www.)?youtu.be\/([a-zA-Z0-9-]{11})
	-> 그룹1 : https?:\/\/  => http:// or https:// 선택  => "?:" 그룹을 무시, "?" 0-1번 반복
  -> 그룹2 : www.  => "?:" 그룹을무시, "?" 0-1번 반복
	-> youtu.be\/  => youtu.be/ 선택
  -> 그룹3 : 문자,숫자,-로 구성된 11개 조합 

  => ?: 을 그룹1,2에 넣음으로써 그룹3만 선택될 수 있음!! 매칭된 그룹으로

참고링크

프로그래머스 정규표현식 : https://programmers.co.kr/learn/courses/11
엘리님 정규표현식 강의 : https://www.youtube.com/watch?v=t3M6toIflyQ
정규표현식 표 : https://ccambo.blogspot.com/2014/10/regular-expression.html

profile
done is better than perfect.

0개의 댓글

관련 채용 정보