문자 반복 연산자
문자가 특정 횟수만큼 반복된다는 것을 표시해야 하는 상황이 있습니다.
정확한 반복 횟수를 모른다면, 단순히 여러 번 쓸 수 있습니다
- 'aaaa'. 하지만 한 번 이상 반복이라고 말해야 한다면 어떻게 해야 할까요?
이를 위해 반복 연산자(수량자)가 존재합니다: 플러스 + (한 번 이상),
별표 * (0번 이상), 물음표 ? (0번 또는 한 번).
이 연산자들은 바로 앞에 있는 문자에 적용됩니다.
예제를 통해 이 연산자들의 작동 방식을 살펴보겠습니다.
예제
패턴 문자 'x', 문자 'a' 한 번 이상,
문자 'x'에 해당하는 모든 부분 문자열을 찾아봅시다:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
코드 실행 결과:
'xx ! ! ! xbx'
예제
패턴 문자 'x', 문자 'a' 0번 이상,
문자 'x'에 해당하는 모든 부분 문자열을 찾아봅시다:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
코드 실행 결과:
'! ! ! ! xbx'
예제
패턴 문자 'x', 문자 'a' 0번 또는 한 번,
문자 'x'에 해당하는 모든 부분 문자열을 찾아봅시다:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
코드 실행 결과:
'! ! xaax xbx'
실습 문제
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abca abea'
패턴 문자 'a', 문자 'b' 임의의 횟수, 문자 'a'에 따라
문자열 'aba', 'abba', 'abbba'를 찾는 정규 표현식을 작성하세요.
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abca abea'
패턴 문자 'a', 문자 'b' 임의의 횟수 (0번 포함), 문자 'a'에 따라
문자열 'aa', 'aba', 'abba',
'abbba'를 찾는 정규 표현식을 작성하세요.
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abca abea'
패턴 문자 'a', 문자 'b' 한 번 또는 0번, 문자 'a'에 따라
문자열 'aa', 'aba'를 찾는 정규 표현식을 작성하세요.
다음 문자열이 주어집니다:
txt = 'aa aba abba abbba abca abea'
'abca'와 'abea'는 포함하지 않고
'aa', 'aba', 'abba',
'abbba'를 찾는 정규 표현식을 작성하세요.