[파이썬] 정규표현식 3 ((), {})
패턴 개수 직접 정해주기 {} (글자)
import re
test1 = re.match('ooo', 'oooh hello!')
test2 = re.match('[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]', '010-1111-3333 입니다!')
print(test1, sep='\n')
<re.Match object; span=(0, 3), match='ooo'>
<re.Match object; span=(0, 13), match='010-1111-3333'>
위와 같이 test1의 문자와 test2의 휴대전화 번호를 예를 들어보자 이렇게 사용할 수 있겠지만, 가독성이 너무 좋지 않다!
import re
test1 = re.match('o{3}', 'oooh hello!')
test2 = re.match('[0-9]{3}-[0-9]{4}-[0-9]{4}', '010-1111-3333 입니다!')
print(test1, test2, sep='\n')
<re.Match object; span=(0, 3), match='ooo'>
<re.Match object; span=(0, 13), match='010-1111-3333'>
이렇게 작성을 하면 패턴에 '글자{개수}'
혹은 [범위]{개수}
를 적으면 그 개수 만큼 확인을 한다.
패턴 개수 직접 정해주기 {} (단어)
import re
test1 = re.match('(hello){3}', 'hellohellohelloworld')
print(test1, sep='\n')
<re.Match object; span=(0, 15), match='hellohellohello'>
글자 뿐만 아니라 단어 또한 가능하다.
단어를 묶을 때는 ( ) 로 묶어야 한다.
패턴 개수 직접 정해주기 {} (개수 유동적으로 정하기)
import re
test1 = re.match('[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}', '010-1111-3333')
test2 = re.match('[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}', '063-811-3223')
test3 = re.match('[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}', '02-811-3311')
print(test1, test2, test3, sep='\n')
<re.Match object; span=(0, 13), match='010-1111-3333'>
<re.Match object; span=(0, 12), match='063-811-3223'>
<re.Match object; span=(0, 11), match='02-811-3311'>
위처럼 휴대폰 전화번호 및 집 전화 번호로 예를 들어보자.
휴대폰 전화번호는 중간에 4개가 들어가야하지만 집 전화번호는 상황에 따라 3개 혹은 4개가 될 수 있다.
또한 집전화 번호는 앞 숫자가 서울은 02 이므로 2글자도 가능하다.
이렇게 유동적으로 판단하고 싶을 경우 문자{시작개수, 끝개수}
를 선정하여 유동적으로 개수를 선택할 수 있다.
댓글남기기