0
私は、次のパターンをコンパイルしています:Pythonの正規表現の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」メディア。+ \。(?: aac | ts) "は、キャプチャしていないグループです。 –
他の質問の回答は間違っていますか? – lapinkoira
いいえ、 're.finditer'と一緒に使用し、' .group() 'をつかんでください。しかし、より便利なものがあります。非捕捉のグループです。 –