Python 3.x 匹配版本号和月份索引的正则表达式
我想匹配一个字符串,该字符串包含年-月索引(即202011)和V I.e,V1之后的版本号。 字符串示例有ABCD.202011.V2.txt、QWERTY.201120.V1.csv 我尝试了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
(?:\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+
单词边界,匹配1+大写字符\b[A-Z]+\。
捕获组1,匹配4位数字(\d{4})
捕获组2,匹配两位数字(\d{2})
匹配\.V
.V
捕获组3,匹配1+位(\d+)
匹配a\。\w+
和1+个单词字符
如果您试图匹配6位数字,为什么要
d{4}
呢?我更改了它。这是复印时的一个错误。