2016-09-30 5 views
2

regexを使用してテキスト行の一部の時間形式を変更したいとします。 古い時間値はどのように使用できますか? 私のコード今まで:テキストファイルのregexを使ったdatetime値の再フォーマット

def file_replace_words(file_in, word_to_replace, replace_with): 
    f = open(file_in, "r+") 
    data = f.readlines() 
    f.seek(0) 
    for line in data: 
     line = re.sub(word_to_replace, replace_with, line) 
     f.write(line) 
    f.truncate() 
    f.close() 

f.file_replace_words(path_putty_log, r"(\d\d\/\d\d\/\d\d) - \d\d:\d\d:\d\d:\d\d\d", 
        "my time in format 31.12.1999 11:54:23") 

私は29/09/16から値を変更したい - 16:29.09.16 16時38分09秒に808:38:09。

答えて

1

正規表現にいくつかのキャプチャグループを追加し、対応する後方参照を持つ置換パターンを使用することができます。

使用

r'(\d\d)/(\d\d)/(\d\d) - (\d\d:\d\d:\d\d):\d{3}' 
    |- 1-| |- 2-| |-3 -| | ----- 4 ---- | 

r'\1.\2.\3 \4'と交換してください。

regex demoを参照してください。

注:これらの日付/時刻スタンプのように見える部分文字列が長い場合は、ワード境界でパターン全体を囲むことが望ましい場合があります。\br'\b(\d\d)/(\d\d)/(\d\d) - (\d\d:\d\d:\d\d):\d{3}\b'

関連する問題