[英]Raise ValueError not working
我正在编写一个Python函数以使用正则表达式从字符串中提取数字。 在某些情况下,找不到我正在标识的组(“ group1”)。 在代码的下一步中,我想排除那些找不到的情况,否则通过排除我反复访问的特定字符来进一步清理数据。 如下面的代码所示,尽管尝试同时引发AttributeError或在None的情况下返回None,但我仍然收到以下错误:
if pre_clean.group('group1') is None:
AttributeError:'NoneType'对象没有属性'group'
有谁知道我如何在None情况下成功引发错误,否则继续浏览代码? 谢谢。
def parse_string(input):
parse_reg = '''
^(?P<group1> \(\d{6}\)\s*
[-]*
(?P<group2>\d{10})
(?P<group3>\d{2}) '''
re_parsecmp=re.compile(parse_reg)
pre_clean = re_parsecmp.match(input)
'Clean area codes to just digits'
deletechars='-(*)&' #charts to remove
if pre_clean.group('group1') is None:
raise AttributeError
#return None
pre_clean2=phone_parts.group('area_code')
pre_clean3=pre_clean2.strip()
for char in deletechars:
pre_clean3 = pre_clean3.replace(char,"")
您需要先对pre_clean
进行检查, pre_clean
才能对其调用方法
if pre_clean is None or pre_clean.group('group1') is None:
raise AttributeError
这是不言自明的,您不会遇到遇到的相同错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.