본문 바로가기
Python/Python FAQ

Python 두 개의 마커 사이의 부분 문자열을 추출하는 방법은 무엇인가요?, How to extract the substring between two markers?

by 베타코드 2023. 10. 13.
반응형

질문


어떤 문자열 'gfgfdAAA1234ZZZuijjk'이 있다고 가정하고, '1234' 부분만 추출하고 싶습니다.

AAA 바로 전에 있는 몇 개의 문자만 알고 있으며, ZZZ 이후에는 1234와 같이 관심 있는 부분입니다.

sed를 사용하면 다음과 같이 문자열에 대해 작업할 수 있습니다:

echo "$STRING" | sed -e "s|.*AAA\(.*\)ZZZ.*|\1|"

이렇게 하면 결과로 1234를 얻을 수 있습니다.

Python에서는 어떻게 같은 작업을 수행할 수 있을까요?


답변


정규 표현식을 사용하여 - 문서를 참조하세요

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234

또는:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ가 원래 문자열에 없음
    found = '' # 에러 처리 적용

# found: 1234
반응형

댓글