正则表达式以匹配版本号和月份索引

时间:2020-11-06 03:00:58

标签: python-3.x regex

我想匹配一个包含年份月份索引(即202011)和V(即V1)之后的版本号的字符串。 字符串示例为ABCD.202011.V2.txt,QWERTY.201120.V1.csv

我尝试(?:\b|\s|^)(\d{6})(?=[.?\s]|\b|$)输入6位数字。它似乎在python中不起作用。

我想合并一个正则表达式以获取月份索引和版本。

2 个答案:

答案 0 :(得分:1)

考虑使用re.findall

inp = "String examples are ABCD.202011.V2.txt , QWERTY.201120.V1.csv"
matches = re.findall(r'\b[A-Z]+\.(\d{6})\.V(\d+)\.\w+\b', inp)
print(matches)

此打印:

[('202011', '2'), ('201120', '1')]

答案 1 :(得分:1)

如果希望年份为4位数字,月份索引为2位数字,版本为1位或更多数字,则可以使用3个捕获组。

\b[A-Z]+\.(\d{4})(\d{2})\.V(\d+)\.\w+
  • \b[A-Z]+\.单词边界,匹配1个以上大写字符
  • (\d{4})捕获第1组,匹配4位数字
  • (\d{2})捕获第2组,匹配2位数字
  • \.V匹配.V
  • (\d+)捕获第3组,匹配1位以上的数字
  • \.\w+匹配一个.和1个以上的字符

Regex demo