正则表达式匹配失败引发AttributeError:NoneType对象无group属性
问题解决:正则匹配返回None导致AttributeError
你的问题出在正则表达式里的?字符——它在正则语法中是特殊元字符,代表匹配前面的元素0次或1次,但你这里要匹配的是原字符串里的字面量?,所以必须转义成\?才能让正则引擎把它当作普通字符处理。
修正后的代码:
import re b='href="/bp/vendor?vendorCodes=C901U">C901U</a></span></div></div></div><div heyaa' # 将正则中的?转义为\? c=re.search('href="/bp/vendor\?vendorCodes=C901U">C901U</a></span></div></div></div><div',b) print(c.group())
如果你的核心需求是提取vendorCodes对应的代码(比如示例中的C901U),可以写更灵活的正则,不用硬匹配整个冗长的HTML片段:
# 提取vendorCodes的对应值 match = re.search(r'href="/bp/vendor\?vendorCodes=([A-Z0-9]+)">\1</a>', b) if match: print(f"匹配到的vendorCode: {match.group(1)}")
这种写法能适配HTML结构的小变动,更稳定地提取目标信息。
内容的提问来源于stack exchange,提问作者Areff
相关产品推荐
相关产品推荐

