我正在使用带有 if 语句的 Python 正则表达式:如果匹配项是 None ,那么它应该转到 else 子句。但它显示了这个错误:



脚本是:

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())

每一个帮助都是很大的帮助!

最佳答案

您的问题是:如果您的搜索没有找到任何内容,它将返回 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

关于Python:如果语句 "If not none"处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44104924/

10-17 00:41