Man*_*rma 3 python regex error-handling if-statement nonetype
我使用带有if语句的Python正则表达式:如果匹配为None,则应转到else子句。但它显示此错误:
AttributeError: 'NoneType' object has no attribute 'group'
脚本是:
import string
chars = re.escape(string.punctuation)
sub='FW: Re: 29699'
if re.search("^FW: (\w{10})",sub).group(1) is not None :
d=re.search("^FW: (\w{10})",sub).group(1)
else:
a=re.sub(r'['+chars+']', ' ',sub)
d='_'.join(a.split())
Run Code Online (Sandbox Code Playgroud)
每个帮助都是巨大的帮助!
您的问题是这样的:如果您的搜索找不到任何内容,它将返回None。您做不到None.group(1),这就是您的代码所代表的。而是检查搜索结果是否是None-不是搜索结果的第一组。
import re
import string
chars = re.escape(string.punctuation)
sub='FW: Re: 29699'
search_result = re.search(r"^FW: (\w{10})", sub)
if search_result is not None:
d = search_result.group(1)
else:
a = re.sub(r'['+chars+']', ' ', sub)
d = '_'.join(a.split())
print(d)
# FW_RE_29699
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |