-1

ファイルがあり、すべての行は次のようになります。

2013-04-23 16:04:12.276 BLA[16878:950f] 'asdf' : 0, 'asds': 0, 'adf': 0

BLA[16878:950f]パーツをに置き換える必要があり,ます。

BLAテキストは常に同じですが、 と 内のテキスト[]常に異なり、長さが異なる場合があることに注意してください。

最後に必要なものは次のとおりです。

2013-04-23 16:04:12.276, 'asdf' : 0, 'asds': 0, 'adf': 0

何か案は?私は正規表現がとても苦手ですが、これが唯一の方法だと思います。

ありがとう

4

2 に答える 2

2
>>> import re
>>> line = "2013-04-23 16:04:12.276 BLA[16878:950f] 'asdf' : 0, 'asds': 0, 'adf': 0"
>>> re.sub(r'BLA\[[^\]]+\]', ',', line)
"2013-04-23 16:04:12.276 , 'asdf' : 0, 'asds': 0, 'adf': 0"

ただし、実際には置き換えたいと思います。必要に応じてspaceBLA[16878:950f]、そのスペースを追加してください

于 2013-04-25T10:55:39.917 に答える
1

私は正規表現がとても苦手ですが、これが唯一の方法だと思います。

FWIW、正規表現なしで実行できます...

>>> s = "2013-04-23 16:04:12.276 BLA[16878:950f] 'asdf' : 0, 'asds': 0, 'adf': 0"
>>> i1 = s.find('[')
>>> i2 = s.find(']')
>>> '%s,%s' % (s[:i1-4], s[i2+1:])
"2013-04-23 16:04:12.276, 'asdf' : 0, 'asds': 0, 'adf': 0"

[...しかし、これは、文字列内にとの各文字が 1 回だけ出現することを保証できる場合にのみ機能]します。

ただし、ジャムラックのソリューションはより信頼性が高くなります。

于 2013-04-25T11:08:33.280 に答える