Python正则表达式捕获& AttributeError:'NoneType'对象没有属性'group'

时间:2016-05-02 10:45:46

标签: python regex

我想在“Bukit Batok Avenue 3”中捕捉“Avenue”这个词:

street_name = "Bukit Batok Avenue 3"
m = re.compile(r'(\S*?)\s\d$', re.IGNORECASE).search(street_name).group(1)

组(1)不起作用,因为返回以下内容:

  

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

或者编写正则表达式以便捕获数字(3)之前的单词(Avenue)会很酷吗?

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式匹配最后一个单词:

>>> import re
>>> re.search(r'(\w+)\s*\d$', "Bukit Batok Avenue 3", re.I)
<_sre.SRE_Match object; span=(12, 20), match='Avenue 3'>
>>> re.search(r'(\w+)\s*\d$', "Bukit Batok Avenue 3", re.I).group(1)
'Avenue'

不使用group()Match对象:

>>> import re
>>> re.findall(r'(\w+)\s*\d$', "Bukit Batok Avenue 3", re.I)
['Avenue']
>>> re.findall(r'(\w+)\s*\d$', "Bukit Batok Avenue 3", re.I)[0]
'Avenue'