首页 > 解决方案 > 使用替换方法将日期 YYYYMMDD 替换为 YYYY-MM-DD 的正确方法

问题描述

用 Python 打开文本文件并将日期从 YYYYMMDD 替换为 YYYY-MM-DD 的最佳做法是什么?

.replace('YYYYMMDD','YYYY-MM-DD')

标签: pythonreplace

解决方案


您可以使用正则表达式以不同格式替换具有相同数字的数字:

>>> import re
>>> s = "Text to replace parts of 20190913 here is the part to replace"
>>> re.sub(r'\s(\d{4})([0-1][0-9])([0-3][0-9])\s', r' \1-\2-\3 ', s)
'Text to replace parts of 2019-09-13 here is the part to replace'

解释:

\d捕获数字(数字)。
{n}标记要捕获的位数
\s捕获空格,因此我们不会捕获长度超过 8 位的数字序列。
(...)标记组,可以被索引
[]的集合只允许匹配某些字符,以捕获非日期
所以我们捕获三个组,一个接一个,第一个带有任何 4 位长的数字,下一个必须以0or开头1第二个必须以 between 0and开头3-而不是我们使用相同的组,只是在替换部分中用字符分隔。用于指定原始字符串编码,因此
由正则表达式而不是 Python 提取。r''\


推荐阅读