我想在python的「匹配對象」中找到一個字符串,但「.find」不起作用。這裏是我的代碼片段:在python中查找匹配對象中的字符串
e_list = []
for file in os.listdir('.'):
r = re.compile(r".*\.(aaa|bbb)$")
e_found = r.search(file)
if e_found is not None:
e_list.append(e_found.group(0))
e_length = len(e_list);
for num_e in range(e_length):
if(e_list[num_e].group(0).find('50M') > 0)
print(e_list[num_e].group(0))
...現在e_list
就像是:
[<_sre.SRE_Match object; span=(0, 7), match='30M.aaa'>,
<_sre.SRE_Match object; span=(0, 7), match='40M.bbb'>,
<_sre.SRE_Match object; span=(0, 7), match='50M.aaa'>,
<_sre.SRE_Match object; span=(0, 7), match='50M.bbb'>,
<_sre.SRE_Match object; span=(0, 7), match='50M.ccc'>]
我期待有結果:
'50M.aaa'
'50M.bbb'
雖然e_list[0].group(0)
回報'30M.aaa'
,.find
不能被應用,因爲它是一個匹配對象。那麼,我該怎麼辦?
如需進一步閱讀:Python的3 「[正則表達式HOWTO](https://docs.python.org/3/howto/regex.html)」 。 –
您應該爲正則表達式使用[raw strings](https://docs.python.org/3/library/re.html#raw-string-notation),以防止與反斜槓和string-vs-regex之間的奇怪交互元字符:'r「。* \。(aaa | bbb)$」'。儘管_this_ regex不需要它,現在開始使用這個習慣會在稍後爲你節省麻煩。 –
致@Kevin J. Chase:哎呀,我以爲我已經在正則表達式前面放了一個'r',但它卻沒有。謝謝你提醒我。 – IanHacker