正则表达式在解析地址时返回None

时间:2016-05-25 10:37:04

标签: python regex

我想通过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

1 个答案:

答案 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,'>