\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)