我有这个字符串。使用正则表达式匹配数字和单词的确切数量 - Python27
P O BOX 32370, CA 92263
而这正则表达式\w{2} \d{5}
但是,两种文本加粗匹配。 “P○B OX 32370,CA 92263”
其实我想提取州和邮编。
我想抢文本开始和一个空格,然后确切的2个字母,然后一个空格,然后确切的5位数字。
我有这个字符串。使用正则表达式匹配数字和单词的确切数量 - Python27
P O BOX 32370, CA 92263
而这正则表达式\w{2} \d{5}
但是,两种文本加粗匹配。 “P○B OX 32370,CA 92263”
其实我想提取州和邮编。
我想抢文本开始和一个空格,然后确切的2个字母,然后一个空格,然后确切的5位数字。
抢文字起点和空间,然后精确 字母,然后一个 空间,然后确切5位数字。
不幸的是,这种模式\b\w{2} \d{5}\b
还会发现这样的字符串匹配为"P O BOX 32370, 2A 92263"
给不符合您的要求的结果。 \w
- 匹配所有字母数字个字符。
要提取国家和邮编使用带有re.search()和match.groupdict()以下方法(获得本场比赛的所有命名的子组)方法:
s = 'P O BOX 32370, CA 92263'
m = re.search(r'\b(?P<state>[a-zA-Z]{2}) (?P<zip_code>\d{5})\b', s)
result = m.groupdict() if m else ''
print(result)
输出:
{'zip_code': '92263', 'state': 'CA'}
你似乎在字边界之后,使用'\ b \ w {2} \ d {5} \ b'。 –