我想在“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)会很酷吗?
答案 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'