Regex with Python
# 빈칸에 정규표현식을 적습니다.
regex = r'_____'
# 주소록입니다. 이후 강의에서 모두 이 search_target을 사용합니다.
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))
[빈칸에 들어갈 정규표현식]
\d: 숫자를 뜻한다.
\w: 문자(특수문자는 미포함, _(언더스코어)는 포함)를 뜻한다.
\d+: 하나 이상 혹은 그 이상 연결된 숫자를 뜻한다.
[1-9]\d*: 1-9로 시작([1-9])하고 그 뒤로 숫자가 0개 이상(\d*)이라고 뜻하는 정규표현식이다. 자연수를 찾을 때 사용한다.
\d+-?\d+-?\d+: -?의 뜻은 '-'가 있거나 없거나 라는 뜻이다.
\d+[- ]?\d+[- ]?\d+: [- ]?의 뜻은 전화번호 숫자 사이에 공백이 들어갈 수도 있으므로 '-' 또는 공백이 있거나 없거나 라는 뜻이다.
\d{2}[- ]?\d{3}[- ]?\d{4}: 위의 표현식과 다른 점은 '+' 대신 '{num}'이 들어갔다는 것이다. '{num}'은 찾을 숫자의 개수를 지정한다.
\d{2,3}[- ]?\d{3,4}[- ]?\d{4}: 위의 표현식보다 좀 더 완성형이다. '{num,num}' 구문을 사용해 찾을 숫자 개수의 범위를 지정할 수 있다. 이 정규표현식을 사용해서 문자열에서 전화번호를 찾을 수 있다.
[aeiou]: 'a', 'e', 'i', 'o', 'u' 각각의 문자를 문자열에서 찾는다.
[a-z]: 영어 소문자를 찾을 때 사용한다. 굳이 [abcdefgh......wxyz] 이렇게 표현할 필요가 없다.
[a-z]+: 연속된 영어 소문자를 찾을 때 사용한다.
[가-힣]+: 한글 첫번째 글자는 '가', 마지막 글자는 '힣'이다. '가'와 '힣'을 사용해 글자를 찾을 수 있다.(단, 이 방식으로 자음 또는 모음의 낱글자는 찾을 수 없다.)
\s: 공백문자(스페이스, 탭, 뉴라인)
\S: 공백 문자를 제외한 문자
\D: 숫자를 제외한 문자
\W: 글자 대표 문자를 제외한 글자들(특수문자, 공백 등)
※ 위의 내용은 프로그래머스의 정규표현식 강의를 보고 정리한 것입니다.
'/dev/null' 카테고리의 다른 글
보안관제 자기소개서 (0) | 2019.12.23 |
---|---|
NIT 자기소개서 (0) | 2019.11.26 |
면접 예상질문(보안관제) (2) | 2019.11.11 |
성균관대학교 일반대학원 학업계획서(과학수사학과_디지털포렌식 전공) (0) | 2019.05.06 |
Cisco 명령어 (0) | 2018.10.10 |
댓글
이 글 공유하기
다른 글
-
보안관제 자기소개서
보안관제 자기소개서
2019.12.23 -
NIT 자기소개서
NIT 자기소개서
2019.11.26 -
면접 예상질문(보안관제)
면접 예상질문(보안관제)
2019.11.11 -
성균관대학교 일반대학원 학업계획서(과학수사학과_디지털포렌식 전공)
성균관대학교 일반대학원 학업계획서(과학수사학과_디지털포렌식 전공)
2019.05.06