报错信息
使用Python正则匹配的时候,报如下错误:
AttributeError: 'NoneType' object has no attribute 'group'
错误原因
报错翻译过来是:
属性错误:“NoneType”对象没有属性“group”
没有匹配到符合正则表达式的内容,但又调用了group方法。
import re
str = 'hello python!!! hello world!!!'
result = re.match('^p.*n$', str)
print(result)
print(result.group())
解决方案
方法1:如果不确定能够匹配到内容时,可以先判断,再调用group方法:
import re
str = 'hello python!!! hello world!!!'
if re.match('^p.*n$', str):
result = re.match('^p.*n$', str)
print(result)
print(result.group())
else:
print("没有找到字符串")
输出结果:
没有找到字符串
方法2:如果确定匹配的内容中有符合的内容,但不一定是在字符串的开始位置,用
search
函数。search函数是先扫描全部的代码块,再进行提取的。
import re
str = 'hello python!!! hello world!!!'
result = re.search('p.*?n', str)
print(result)
print(result.group())
输出结果:
<re.Match object; span=(6, 12), match='python'>
python
- 39 AttributeError attribute NoneType Python39 attributeerror attribute nonetype attributeerror containers attribute nonetype 39 attribute nonetype children 39 attribute nonetype object 39 quot attributeerror attribute 39 attributeerror tensorflow attribute 39 attributeerror antialias attribute 39 attributeerror attribute copy_src 39 attributeerror attribute深度 v_flag_cb_issuer_check 39 attributeerror attribute