Python正则匹配求助:匹配develop及后跟任意数字的字符串并修复代码
修正后的代码及问题解析
原代码核心问题
- 变量名
str是Python内置类型名,会覆盖内置功能,属于不规范写法 - 正则表达式错误:
r"develop\\d"在原始字符串中无需双反斜杠,且规则要求必须跟至少一个数字,无法匹配纯develop;同时未限制字符串结尾,会错误匹配developtest这类开头符合但后续有多余字符的字符串 - 循环写法冗余,没必要通过索引遍历列表
修正后的代码
import re # 重命名变量避免冲突 test_strings = ["develop","develop1","develop123","developtest","develop9_test"] # 编译正则:精确匹配develop开头,后跟0个或多个数字,且到字符串结尾结束 pattern = re.compile(r"develop\d*$") for s in test_strings: if pattern.match(s): print(f"{s}: true") else: print(f"{s}: false")
正则规则说明
develop:精确匹配固定开头字符串\d*:匹配0个或多个数字(*允许0次匹配,因此纯develop也能命中)$:锚定字符串结尾,确保没有多余字符干扰匹配
运行输出
develop: true develop1: true develop123: true developtest: false develop9_test: false
内容的提问来源于stack exchange,提问作者gcpdev-guy
相关产品推荐
相关产品推荐

