私はUNIXマシンの\etc\services
ファイルからいくつかの情報をキャプチャしたいのですが、間違った値をキャプチャしています。正規表現で '/ etc/services'を取得する
[('dircproxy\t57000/tcp', 'dircproxy', '57000', 'tcp')]
[('tfido\t\t60177/tcp', 'tfido', '60177', 'tcp')]
[('fido\t\t60179/tcp', 'fido', '60179', 'tcp')]
私はこのようにそれを望む:私はこれを考える
[('dircproxy', '57000', 'tcp')]
[('tfido', '60177', 'tcp')]
[('fido', '60179', 'tcp')]
私は
with open('/etc/services') as ports_file:
lines = ports_file.readlines()
for line in lines:
print re.findall('((\w*\-*\w+)+\W+(\d+)\/(tcp|udp))', line)
今持っている。しかし、それは、このような不正な値が得られている何
(\w*\-*\w+)+
は私の正規表現で必要です。なぜならいくつかはdefこのようにしてくださいthis-should-capture
外かっこを削除します。 –
@WiktorStribiżew申し訳ありませんが、私は正規表現で吸う。ありがとうalot – Ludisposed
ここで正規表現を使用する特別な理由はありますか? 'split()'の仕事のように思えます。 –