私は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)" 。 –
バックスラッシュやstring-vs-regexとの奇妙なやりとりを防ぐために、正規表現に[raw strings](https://docs.python.org/3/library/re.html#raw-string-notation)を使用する必要がありますメタキャラクタ: 'r"。* \。(aaa | bbb)$ "' _この正規表現はそれを必要としませんが、習慣を開始すると後で頭痛を軽減します。 –
@ケビン・J・チェイス:ああ、私はすでに正規表現の前に「r」を入れていたと思ったが、それは欠落していた。思い出させていただきありがとうございます。 – IanHacker