-2
문자열이있어서 추출해야합니다. 문제는 반복 내에서 반복을 설명 할 수 없다는 것입니다. "반복 내의 Python 정규 표현식 그룹 반복
('Makimak', '-cg_mk', 'cg', 'mk')
그래서 그룹이있다 - : 그래서 여기에 코드입니다 :
f = "Makimak-cg_mk_Mokarmi"
pattern = "([A-Za-z][A-Za-z0-9]+)((?:[-_]([a-z]{2}))+)"
mO = re.match(pattern, f)
print mO.groups()
그리고 그 결과는 다음과 같습니다
('Makimak', '-cg_mk', 'mk')
하지만이 같은 튜플을 좀하고 싶습니다 cg_mk "는 두 문자 패턴의 반복을 포함합니다. 결과의
[a-z]{2}+
그룹 여기에 표현 된 반복의 다시 마지막 부분주지 :하지만 그런 어떤 일이
([a-z]{2})
내 생각이 있어야한다이었다에게 "+" 너무 같아서 :
([a-z]{2})+
같은 결과가 나온다. 일치 개체가 생성되면 단순히 원하는 그룹을 얻을 수 없습니다.
나는 이것이're'을 사용하는 간단한 파이썬 정규 표현식으로는 가능하지 않을까 의심 스럽다. AFAIK,'re '내의 모든 함수는 * 중첩되지 않는 * 발생을 처리합니다. 겹치는 사건을 잡는 것은 꽤 힘든 것 같습니다 ... – mgilson
달성하려는 것에 대해 좀 더 설명해 주시겠습니까? 왜 출력물에 반복이 필요합니까? 이 다른 입력을 사용해야합니까? – deadly
나는 modul을 가지고 무엇을 할 수 있을지 궁금하다. 위에서 설명한 결과를 한 줄로 얻을 수 있습니까? 물론 F.J가 썼던 해결책을 고려했습니다. – Prag