繁体   English   中英

AttributeError:'NoneType'对象没有属性'group'

[英]AttributeError: 'NoneType' object has no attribute 'group'

我必须吸收一些数据。 脚本已经存在,但需要针对新数据进行调整。

所以有一行:

head = fn.replace(re.search(r'\d{8}_\d{4}', fn).group(),'')

我在哪里得到错误: AttributeError: 'NoneType' object has no attribute 'group'

要解决此问题,我需要了解此行实际发生的情况。
而且我不了解“替换”之后要做什么。 有人可以解释一下这是怎么回事吗? r'\\d{8}_\\d{4}'是什么意思?

re.search正在查找您的正则表达式模式的匹配项,并返回一个正则表达式匹配对象。 如果没有匹配项,则返回None。 因此,您无法在None上调用.group()

In [38]: re.search(r'921', mystr)
Out[38]: <_sre.SRE_Match object; span=(23, 26), match='921'>

In [39]: mystr
Out[39]: "b'la lala 135\\r\\n 1039 921\\r\\n'"

In [40]: re.search(r'921', mystr)
Out[40]: <_sre.SRE_Match object; span=(23, 26), match='921'>

In [41]: re.search(r'potatoes', mystr)

SRE_Match对象具有group()方法,该方法获取匹配的字符串值。

In [42]: re.search(r'921', mystr).group()
Out[42]: '921'

因此,如果您仍然不清楚它在做什么,它会找到与re.search()提供的正则表达式模式匹配的字符串fn ,并通过将其替换为''将其从字符串fn删除。 在这种情况下,它将找到fn中具有8位数字( \\d{8} )和下划线然后再有4位数字( \\d{4} )的匹配项。 所以看起来像12345678_1234字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM