这是一个示例数据,
data_example1 = "1-19" #month, year (last two digits)
data_example2 = "12-21" #month, year (last two digits)
如何编写一个正则表达式来匹配它,然后用零填充替换年份。
如果月份是一位数,此代码似乎可以工作,如何才能使其同时适用于一位数和两位数月份。另外,有没有一种方法可以使用正则表达式将年份单独零填充,而不是 split("-")
。
if re.search("\d\-\d\d", data_example1):
month, year = data_example1.split("-")
cleaned_date = month + "-" + "00" + year # zero padded year
最佳答案
只需使用 optional quantifier :
\d\d?\-\d\d
根据 Barmar 的建议,您可以使用 word boundary防止两端出现额外的数字:
\b\d\d?\-\d\d\b
如果日期是您要匹配的字符串中的唯一内容,则这里的替代方法是使用 re.match
或 anchor 。
关于python - 如何使用正则表达式来匹配年份和月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68912875/