以前にこの質問をしたことがありますが、以前に指定した形式に対応していない行がいくつか見つかったため、編集しました...
以下は行の例です。
data = "09:55:04.125 mta Messages I Doc O:SERVER (NVS:SMTP/me@domain.com) R:NVS:FAXG3.I0.0101 mid:6393"
data2= "09:55:05.045 mta Messages I Doc O:SERVER (NVS:SMTP/me@domain.com) R:ADMIN (NVS:SMTP.0/me@domain.fr) mid:6397"
最初に、スラッシュと 2 つのポイントの間を一致させましたが、最初のような「FAXG3.I0.0101」タイプの後にスラッシュが続かない行がいくつかあることに気付きました。
ここに私が使用する正規表現があります:
exp = result = re.findall(r'[\w\.]+(?=:*)',data) # type S & D
必要な結果は、最初の行が 'SMTP','FAXG3.I0.0101' で、2 行目が 'SMTP','SMTP.0' です。誰かが私の正規表現を修正してそれを取得するのを手伝ってもらえますか??