Python 3.x 匹配版本号和月份索引的正则表达式

Python 3.x 匹配版本号和月份索引的正则表达式,python-3.x,regex,Python 3.x,Regex,我想匹配一个字符串,该字符串包含年-月索引(即202011)和V I.e,V1之后的版本号。 字符串示例有ABCD.202011.V2.txt、QWERTY.201120.V1.csv 我尝试了(?:\b |\s | ^)(\d{6})(?=[.?\s]|\b |$)来查找6位数字。它在python中似乎不起作用 我想合并一个正则表达式来获得月份索引和版本。考虑使用re.findall: inp=“字符串示例为ABCD.202011.V2.txt、QWERTY.201120.V1.csv” ma

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

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


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

考虑使用
re.findall

inp=“字符串示例为ABCD.202011.V2.txt、QWERTY.201120.V1.csv”
matches=re.findall(r'\b[A-Z]+\.(\d{6})\.V(\d+\.\w+\b',inp)
打印(匹配)
这张照片是:

[('202011', '2'), ('201120', '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,匹配两位数字
  • \.V
    匹配
    .V
  • (\d+)
    捕获组3,匹配1+位
  • \。\w+
    匹配a
    和1+个单词字符

如果您试图匹配6位数字,为什么要
d{4}
呢?我更改了它。这是复印时的一个错误。