강의로 돌아가기
박희태

여기선 숫자가 이어서나오네요?

바로 이전 단계에서는 +를 써서 숫자들이 이어서 나오도록 했는데
여기서는 +를 안써도 숫자가 이어서 나오네요?

어떻게 된건가요

작성중인 코드―regex.py
1
2
3
4
5
6
7
8
9
10
11
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)
1 개의 답변
정두식_

\d+는 1개 이상의 이어진 숫자를 의미합니다. \d{2,3}은 길이가 2~3인 이어진 숫자를 의미하구요.
r'\d{2,3}[- ]?\d{3,4}[- ]?\d{4}'의 경우 [- ]?는 있거나 없거나이기 때문에 \d{2,3}\d{3,4}\d{4}의 경우도 해당합니다. 그러면 길이가 9~11사이인 숫자도 나올 수 있지요.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.