簡體   English   中英

在Python中使用正則表達式更改文件中字符串的一部分

[英]Change part of string in a file using regex in Python

我有一個文件,其中每一行包含一個時間戳作為該行的一部分。 時間戳格式為1996-07-04 00:00:00.0 我想將其轉換為1996-07-04 00:00:00而每行中都沒有毫秒。 我嘗試在pyhton中使用re.sub()方法,但是它將它替換為我提供的值,並且不保留原始時間戳。 我在用

re.sub("(\d\d\d\d-\d\d-\d\d\s+\d\d:\d\d:\d\d.\d)", "replace without millisec", cell)

第二個參數是我的問題。

您可以使用以下正則表達式捕獲您需要保留的內容,然后在子替換后使用后向引用將其還原:

\b(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\.\d+\b

替換為\\1

觀看演示

IDEONE代碼:

import re
p = re.compile(r'\b(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\.\d+\b')
test_str = u"1996-07-04 00:00:00.0"
print re.sub(p, r"\1", test_str)

請注意,您不必重復\\d\\d\\d\\d類的相同子模式,只需使用限制量詞 {n} ,其中n是您需要該子模式重復的次數。 您甚至可以設置最小和最大邊界,例如{1,4} ,或者僅設置最小{2,}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM