Python正则如何匹配1至1000范围内所有为5的倍数的数字
正确正则写法
修改后的re.compile参数如下:
compiler = re.compile(r'\b(?:1000|[1-9]\d{0,2}[05])\b')
规则说明
\b:单词边界标记,确保匹配完整的独立数字,不会出现从长数字中截取部分片段匹配的问题,比如不会从201中匹配到20,也不会匹配长数字中的符合片段(?:...):非捕获分组,避免findall方法优先返回分组内的内容,保证返回完整的匹配数字1000:直接匹配边界值1000,满足包含上下限的要求[1-9]\d{0,2}[05]:匹配1~999范围内的所有5的倍数:[1-9]:限定首位不能为0,直接排除0值和0开头的非法数字\d{0,2}:允许后面跟0到2位数字,覆盖1位、2位、3位数字的长度要求[05]:限定末位为0或5,符合5的倍数的数学规则
使用该正则测试提供的字符串,得到的结果和期望输出完全一致。
内容的提问来源于stack exchange,提问作者user12575866
相关产品推荐
相关产品推荐

