我有一个格式错误的csv文件需要修复:
^M
)。^M
字符。 MM/DD/YY
)所以我尝试将(\r\nMM/DD/YY
)模式替换为(\rMM/DD/YY
),但它不起作用。这是我的代码片段:
fixed_content = re.sub(r"""\r\n\d{2})/\d{2}/\d{2}""", r"""\r\1/\2/\3""", malformed_content)
我的问题是:
^M
字符表示为模式。我使用了\r\n
\1
用于第一个MM
模式,\2
用于下一个DD
模式,\3
用于最后YY
模式。 答案 0 :(得分:1)
要匹配DD/MM/YY
形式的日期字符串,您可以使用以下正则表达式:
\d{2}\/\d{2}\/\d{2}
如果您想要backreference匹配的字符串,则必须将它放在括号(...)
之间,如下所示:
(\d{2}\/\d{2}\/\d{2})
整体替换命令将变为:
fixed_content = re.sub(r"""\r\n(\d{2}\/\d{2}\/\d{2})""", r"""\r\1""", malformed_content)
请注意,我有时需要反斜杠\/
,因为反斜杠被用作匹配/替换字符串之间的分隔符。修改以满足您的需求。