我想通过python中的正则表达式解析这个特定的地址。
address = "16220 Scottsdale Road, Suite 100 Scottsdale, AZ 85254"
为什么这个正则表达式返回None
try:
print re.search('/[0-9]{1,5} (.*?), (.*?) [a-zA-Z]{2} [0-9]{5}(-[0-9]{4})?/', address)
except:
None
答案 0 :(得分:2)
删除前导和尾部斜杠,改为使用原始字符串:
>>> re.search(r'[0-9]{1,5} (.*?), (.*?) [a-zA-Z]{2} [0-9]{5}(-[0-9]{4})?', address)
<_sre.SRE_Match object; span=(0, 53), match='16220 Scottsdale Road, Suite 100 Scottsdale, AZ 8>
这是贪婪和非贪婪匹配之间的区别(参见匹配的字符串):
>>> re.search(r'.*?,', "abcd,abcde,abc, f")
<_sre.SRE_Match object; span=(0, 5), match='abcd,'>
>>> re.search(r'.*,', "abcd,abcde,abc, f")
<_sre.SRE_Match object; span=(0, 15), match='abcd,abcde,abc,'>