programmers : 정규표현식

SOOYEON·2022년 6월 11일
0

정규표현식

목록 보기
2/4

Lesson1

link

# 전화번호를 찾는 정규표현식
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))


Lesson2

숫자 대표문자

\d

\d는 숫자를 대표하는 정규표현식
이때 d는 digit을 의미한다.

regex = r'\d'
result = re.findall(regex, search_target)


Lesson3

글자 대표문자

\w

\w는 글자를 대표하는 정규표현식

  • \w는 a, b, c, 가, 나, 다, 1, 2와 같은 문자와 숫자를 포함한다.
  • 특수문자는 포함하지 않지만, _(언더스코어)는 포함한다.
regex = r'\w'
result = re.findall(regex, search_target)


Lesson4

하나 이상

\d

\d는 숫자를 한글자만 찾는다.

  • 전화번호를 구성하는 043이나 2568같이 연결된 숫자를 찾고 싶을 때는 +를 이용한다.

+

+는 "하나 혹은 그 이상 연결된"이라는 뜻

  • 따라서 \d+"하나 혹은 그 이상 연결된 숫자"를 의미
regex = r'\d+'
import re
result=re.findall(regex,search_target)
print(result)

실행 결과

# 출력 〉	
['02', '123', '4567', '070', '9999', '9999', '010', '2454', '3457']


Lesson5

0개 이상

*

*은 "0개 이상"이라는 뜻

  • 따라서 \d*"숫자가 0개 이상이다"를 의미
  • 이를 이용하면 자연수는 [1-9]\d*로 표현할 수 있다.
regex = r'\d*'
import re
result = re.findall(regex, search_target)
print("\n".join(result))

실행 결과

# 출력 〉	
2
123
4567
70
9999
9999
10
2454
3457

0개의 댓글