0
나는 다음과 같은 패턴을 컴파일 오전 :파이썬 정규식 findall은 OR
pattern = re.compile("media.+\.(aac|ts)")
내 생각이 문자열에 포함 .TS와는 .aac 미디어 파일을 얻는 것입니다. (|) 미디어 파일 이름은 사용할 수 Python regular expressions OR이 허용 대답에 따라 미디어 u9xuxtkay_213.aac 또는 미디어 u9xuxtkay_213.ts
할 수있는 OR 그러나 나는 그것이 doenst 때문에 그이 허용 대답이 얼마나보고 해달라고 나에게 제대로 작동 :
In [23]: s
Out[23]: 'Sent from my iPhone'
In [24]: patt = re.compile("Sent from my (iPhone|iPod)")
In [25]: patt.findall(s)
Out[25]: ['iPhone']
그래서 나는 findall은 전화와 나는이 얻을 :
In [37]: media
Out[37]: 'media-u9xuxtkay_213.aac'
In [38]: pattern = re.compile("media.+\.(aac|ts)")
In [39]: pattern.findall(media)
Out[39]: ['aac']
내가 대신 미디어 u9xuxtkay_213.aac 단지 AAC를 얻어야한다. 허용 된 대답이 돌아 오는 동일한 방법
캡쳐되지 않은 그룹 인'r "media. + \. (?: aac | ts)"'를 사용하십시오. –
다른 질문에서 허용되는 대답이 잘못 되었습니까? – lapinkoira
아니요,'re.finditer'와 함께 사용하고'.group()'을 잡으면. 그러나보다 편리하게 사용할 수있는 그룹이 있습니다. –