標準のvsftpログファイルからファイル名と拡張子全体を取得したい。Pythonの正規表現全体のファイル名に一致するファイルの拡張子を含める
ファイルは以下の通りです:
Wed Aug 31 10:23:59 2017 1 ::ffff:172.18.1.168 18593420 /Shell_Scripting.sh b _ i r user1 ftp 0 * c
Wed Aug 31 10:24:18 2017 1 ::ffff:172.18.1.168 18593420 /test.txt b _ i r user1 ftp 0 * c
が、私は正規表現
pattern = re.compile(r'\/(\w+)')
match = pattern.search(ftpfile)
print match.group(1)
しかし、拡張子(.SH & .TXT)が含まれていない(&テストをShell_Scripting)のみの一致のファイル名を試してみました。
私は彼らが名前がファイル拡張子インクルードファイルと一致する正しい正規表現がどうあるべきかAttributeError: 'NoneType' object has no attribute 'group'
を表示?re.compile(r'\/(.+\.\w+)')
とre.compile(r'\/(\w+\.\w+)')
両方を試してみましたか
ファイル名の正規表現にしないでください。スペースはどうですか?ローカルのファイルシステムで許可されている他の面白い文字はどうでしょうか?複数の '.ext.ens.ions'はどうでしょうか?代わりに '18593420'までのパーツと '。+'のグループをマッチさせてから、 'b_i r user1 ftp 0 * c'パーツとマッチさせてください。 – user2722968
@ user2722968思い出してくれてありがとう。はい、空白スペースが問題になるはずです。別の方法を試してみます – Ilikeperl