python - 如何使用正则表达式来匹配年份和月份?

标签 python regex

这是一个示例数据,

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/

相关文章:

python - 查找某个键的最大值

python - 在 Python 中创建和维护多个 ssh session

regex - R传递变量中的正面展望

python - 获取每个目录的文件(Py)

python - 比较 Python 中的圆形 float

java - 如何用后处理值替换正则表达式组?

java - 从java中的单词中删除复数后缀

java - 不受字符限制的字符串的正则表达式模式

javascript - 如果使用正则表达式找到,则提取字符串

python - 如何遍历枚举对象并使用 next() 函数打印所有索引项对?