1

正規表現を使用して次のことを達成したいと思います。

入力

M1  hello world 1234_5678  ip som lorem  9321_1231  iste natus error sit voluptatem   4313_4351  ratione voluptatem sequi nesciunt   4312_1234
M2 magnam aliquam 4351_3143  sed quia non numquam  3123_1432

出力

M1    hello world   1234    5678 
M1    ip som lorem   9321    1231
M1    iste natus error sit voluptatem   4313    4351 
M2    magnam aliquam     4351    3143 
M2    sed quia non numquam    3123    1432

正規表現の一致

(M[1|2])?\s+(\D+)(\d{4})_(\d{4})(\n)?

とサブ

\1\t\2\t\3\t\4\n

近づきます(https://regex101.com/r/tKgCBi/1/を参照)

M1  hello world     1234    5678
    ip som lorem    9321    1231
    iste natus error sit voluptatem     4313    4351
    ratione voluptatem sequi nesciunt       4312    1234

M2  magnam aliquam  4351    3143
    sed quia non numquam    3123    1432

この (オプションの) 一致が行われない場合、最後に (オプションで) 一致したグループを使用するにはどうすればよいですか? (M[1|2])? 失敗します。

(私はPythonの「re」モジュールを使用しています)

4

1 に答える 1