首页 > 解决方案 > 正则表达式匹配一个包含任何两位整数的特定字符串?

问题描述

我有一个看起来像这样的文件名列表: red.t<0 padded int>z.white.blue<0 padded int>.ab00.txt2 例如:

red.t01z.white.blue12.ab00.txt2
red.t02z.white.blue45.ab00.txt2
red.t03z.white.blue09.ab00.txt2

我想匹配这个序列,对于任何两位数。接近尾声是恒定的00,它不应该与那里的任何其他值匹配。即,这不匹配red.t03z.white.blue09.ab01.txt2

我试过red.t[0-9]*z.white.blue[0-9]*.ab00.txt了,但这只有当我有第一个时才有效[0-9]*,第二个使它不再匹配。解决方案是什么?

标签: pythonregex

解决方案


您可以使用锚来断言字符串的开头和结尾,转义点以匹配它,并使用量词0-9[{2}匹配 2 位数字。

^red\.t[0-9]{2}z\.white\.blue[0-9]{2}\.ab00\.txt2$

正则表达式演示


推荐阅读