【发布时间】:2014-05-14 14:52:45
【问题描述】:
我正在尝试使用正则表达式从字符串中提取城市、州和/或邮政编码。我使用的正则表达式(从这里get city, state or zip from a string in python)是([^\d]+)?(\d{5})?,当我在http://regex101.com/ 上测试它时,它准确地选择了我想要匹配的两个字符串。
但是我不确定如何在 Python 中分隔这两个字符串。这是我尝试过的:
import re
string = "binghamton ny 13905"
reg = re.compile('([^\d]+)?(\d{5})?')
match = reg.match(string)
return match.group()
这只是返回整个字符串。有没有办法单独拉出每场比赛?
我还尝试将正则表达式分成两个不同的正则表达式(一个用于城市、州,一个用于邮政编码)但是邮政编码正则表达式要么返回空字符串,要么返回None。感谢所有帮助,谢谢。
【问题讨论】:
-
你的意思是
match.groups()? -
您需要第二个捕获组:
match.group(2)