S0R5回答ポイント 80ptウォッチ 1

Pythonでの文字列処理について。

20081110000001.543210 >> Host-1 192.168.0.1:12345
という文字列が与えられたときに、
['20081110000001', '543210', 'Host-1', '192.168.0.1', '12345']
というリストを得たいと考えています。
これまでは、

import re

line = '20081110000001.543210 >> Host-1 192.168.0.1:12345'
s = re.sub('(^\d+)\.(\d+) >> ([0-9A-z_-]+) (\d+\.\d+\.\d+\.\d+):(\d+)', '\g<1>,\g<2>,\g<3>,\g<4>,\g<5>', line)
lst = s.split(',')

のように、文字列lineから、いったん【,】で区切った文字列sを作って、それをsplitしてリストlstを得ていたのですが、いちいちsをつくるあたりが冗長な気がしています。
つまり、上記のコードで、re.sub()の第2引数で\g<x>を使って後方参照している文字列を、リストで取得したい、ということです。

このような書き方以外にうまい方法はないでしょうか。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-11-10 16:14:31
終了日時
2008-11-13 12:59:57
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

Python343引数408T-126

人気の質問

メニュー

PC版