파이썬
⇒ 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)) //모든 결과를 개행해서 보여줌
< 문제 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