2017-09-04 9 views
-1

Pythonスクリプトでは、文字列をフォーマットする必要があります。私が探している置き換える日時正規表現を構築するには?

em|2017-08-24|PE|TETE|USD||AR|2017-08-25 06:54:40|-98.58 

を:私が持っている

日時に"/"代わりの"-"":"途中で代わりの" "を交換する

em|2017/08/24|PE|TETE|USD||AR|2017/08/25:06:54:40|-98.58 

ご注意ください値

答えて

1

re.sub()と機能:

import re 

# replacement callback 
def repl(m): 
    sep = m.group(4) # ending separator 
    sep = sep if sep == '|' else ':' 
    return '%s/%s/%s%s' % (m.group(1), m.group(2), m.group(3), sep) 

s = 'em|2017-08-24|PE|TETE|USD||AR|2017-08-25 06:54:40|-98.58' 
result = re.sub(r'(\d{4})-(\d{2})-(\d{2})(\||\s)', repl, s) 

print(result) 

出力:

em|2017/08/24|PE|TETE|USD||AR|2017/08/25:06:54:40|-98.58 
0

あなたの文字列がワード境界なし他のスペースが先行する他のダッシュが含まれていない場合は、あなたが使用することができます。

re.sub(r'\b-', '/', s).replace(' ', ':') 

しかし、ローマの答え線がこれらの条件に常に合致しない場合は、より適切です。

関連する問題