IT박스

파이썬 정규식 일치를 통해 반복

itboxs 2020. 12. 7. 07:58
반응형

파이썬 정규식 일치를 통해 반복


이것은 내가 겪는 것보다 쉬워야합니다. 내 문제는 다음과 같은 문자열을 돌리는 것입니다.

ABC12DEF3G56HIJ7

으로

12 * ABC
3  * DEF
56 * G
7  * HIJ

그리고 평생 동안 REGEX 매칭을 사용하여 올바른 루프 세트를 설계 할 수 없습니다. 문제의 핵심은 코드가 완전히 일반화 [A-Z]되어야한다는 [0-9]것입니다. 조각이 얼마나 길거나 조각이 얼마나 길지 짐작할 수 없기 때문 입니다.

도움을 주셔서 감사합니다!


파이썬 re.findall은 당신을 위해 작동합니다.

라이브 데모

import re

s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')

for (letters, numbers) in re.findall(pattern, s):
    print(numbers, '*', letters)

데이터 세트가 큰 경우 re.finditer 를 사용하는 것이 좋습니다 .

import re

s = "ABC12DEF3G56HIJ7"
pattern = re.compile(r'([A-Z]+)([0-9]+)')

for m in re.finditer(pattern, s):
    print m.group(2), '*', m.group(1)

참고 URL : https://stackoverflow.com/questions/12870178/looping-through-python-regex-matches

반응형