파이썬 정규 표현식에서의 중괄호
연산자 '+', '*', '?'는
유용하지만, 구체적인 반복 횟수를 지정하는 데는
사용할 수 없습니다. 이 경우 {} 연산자가
도움이 될 것입니다.
다음과 같이 작동합니다: {5} - 5회 반복,
{2,5} – 2회에서 5회까지 반복 (둘 다 포함),
{2,} - 2회 이상 반복. 예제를 살펴보세요:
예시
이 예시에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'
한 번 또는 두 번, 문자 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
코드 실행 결과:
'xx ! ! xaaax'
예시
이 예시에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'
두 번 이상, 문자 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
코드 실행 결과:
'xx xax ! !'
예시
이 예시에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'
세 번, 문자 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
코드 실행 결과:
'xx xax xaax !'
예시
이 예시에서 검색 패턴은 다음과 같습니다:
문자 'a' 열 번:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
코드 실행 결과:
'aaa ! aaa'
예시
이 예시에는 다음과 같은 패턴이 있습니다: 문자
'x', 문자 'a' 세 번 이하,
문자 'x'. 이를 구현하려면
숫자 3 앞에 숫자를 명시하지 않고
쉼표만 넣으면 됩니다:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
코드 실행 결과:
'! ! ! !'
예시
3 앞에 0을 넣는 것도 허용됩니다:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
코드 실행 결과:
'! ! ! !'
실습 문제
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abbbba abbbbba'
문자열 'abba', 'abbba',
'abbbba'만을 찾는 정규 표현식을
작성하세요.
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abbbba abbbbba'
'b'가 3번 이하 (포함)로 나타나는
'aba' 형태의 문자열을 찾는 정규 표현식을
작성하세요.
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abbbba abbbbba'
'b'가 4번 이상 (포함)으로 나타나는
'aba' 형태의 문자열을 찾는 정규 표현식을
작성하세요.