반응형
질문
어떤 문자열 '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
반응형
댓글