输入
a = "Miami, FL"
b = "Boston, MA or Miami, FL"
c = "United Kingdom"
正则表达式
loc = re.compile('([^or]+)[,]*[\s]*([A-Z]+)')
locs = loc.findall(b)
如何在or
打破它?它会在我知道的o
处突破。而[^(or)]
和[^\(or\)]
也不起作用。
答案 0 :(得分:3)
好像你想要or
分割字符串。使用re.split
:
>>> b = "Boston, MA or Miami, FL"
>>> re.split(r'\bor\b', b)
['Boston, MA ', ' Miami, FL']
>>> re.findall(r'(?:^|or)\s*([^,]+,?\s[a-z]+)', a, flags=re.I)
['Miami, FL']
>>> re.findall(r'(?:^|or)\s*([^,]+,?\s[a-z]+)', b, flags=re.I)
['Boston, MA', 'Miami, FL']
>>> re.findall(r'(?:^|or)\s*([^,]+,?\s[a-z]+)', c, flags=re.I)
['United Kingdom']
答案 1 :(得分:1)
这应该适合你:
loc = re.compile('(?:^|or)\s*([^,]+),\s([A-Z]+)')