如何使用pythonre将没有前导零的年份替换为前导零?

2024-04-25 06:55:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含日期字符串的字符串,“363898,卡图勒斯,公元前84-11-1” 如何使用pythonre将84年替换为0084年?在


Tags: 字符串pythonre
2条回答

尝试:

import re
re.sub(r',(\d\d)-', r',00\1-', '363898, Catullus,84-11-1 BC')

使用r',(\d\d)-'我们捕获逗号和破折号之间的任何一对数字(不能少或多)。我们用一个逗号,两个0,第一对括号(这里是两个数字)和一个破折号来替换整个匹配。在

意思是:

  • 如果昏迷和破折号之间没有两个数字,则不会进行替换。你拿回你原来的绳子
  • 如果有这些数字,则用相同的逗号和破折号来代替它们,但用额外的零来代替。在

在Python中尝试正则表达式时,只需使用一个online regular expression tester完整的免责声明:我编写了这个,所以我有偏见。在

但也许正则表达式并不适合这项工作。有时很好地使用普通函数也是一样的:

^{pr2}$
re.sub(r"(?=\b\d{2}-\d+-\d)", "00", '363898,Catullus,84-11-1 BC')

只有当年份由两位数字组成时才会修改。你需要另一个

^{pr2}$

也可以处理个位数的年份。我会把三位数的年作为练习:)

相关问题 更多 >