我想匹配一个包含年份月份索引(即202011)和V(即V1)之后的版本号的字符串。 字符串示例为ABCD.202011.V2.txt,QWERTY.201120.V1.csv
我尝试(?:\b|\s|^)(\d{6})(?=[.?\s]|\b|$)
输入6位数字。它似乎在python中不起作用。
我想合并一个正则表达式以获取月份索引和版本。
答案 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个以上的字符