
\d
\D
\w
a, b, c, 가, 나, 다, 1, 2와 같은 문자와 숫자 포함 (언더바_를 제외한 특수문자는 포함하지 않음)
\W
\w와 반대. 즉,a, b, c, 가, 나, 다, 1, 2와 같은 문자와 숫자, 언더바_를 제외한 모든 문자
\s(스페이스, 탭, 뉴라인)
\S
+
\d+: 하나 혹은 그 이상 연결된 숫자를 의미
*
\d*: 숫자가 0개 이상
?
-? : 하이픈-이 있거나 없을 경우
[- ]? : 하이픈 -이나 공백 이 있거나 없을 경우
\d+[- ]? : 하나 이상의 숫자\d와 연결된 하이픈-이나 공백 이 있거나 없을 경우
.
{n}
\d{2} : 숫자가 연속으로 2번
{n, m}
\d{3, 5} : 숫자가 연속으로 3번, 4번, 5번까지 반복
[]내부에 포함할 문자 나열
[aeiou] : 소문자 모음만
[]내부에 포함할 처음과 끝 글자 사이에 하이픈을 이어 작성
[1-9] : 1-9숫자만
[a-z] : 소문자 a to z
[가-힣] : 한글
[a-zA-Z가-힣] : 알파벳 대/소문자와 한글 모두
^문자열의 시작부터 검색
$문자열의 끝부터 검색
02-1234-5678,042 123 4567,01012345678와 같은 형태를 갖는 전화번호만 추출하기
\d{2,3}-, 또는 공백 이 있거나 없고 바로 다음 숫자가 올 수 있음: \d{2,3}[- ]?\d\d{2,3}[- ]?\d{3,4}\d{2,3}[- ]?\d{3,4}[- ]?\d{4}regex = r'\d{2,3}[- ]?\d{3,4}[- ]?\d{4}'
search_target = '''이상한 전화번호 0030589-5-95826
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(result)
