[英]regex capture everything except a word (break at a word not character)
Inputs 输入项
a = "Miami, FL"
b = "Boston, MA or Miami, FL"
c = "United Kingdom"
RegEx 正则表达式
loc = re.compile('([^or]+)[,]*[\s]*([A-Z]+)')
locs = loc.findall(b)
How can I make it break at or
? 如何使其在
or
时断裂? It will break at o
I know. 这将打破在
o
我知道。 And [^(or)]
and [^\\(or\\)]
won't work either. 并且
[^(or)]
和[^\\(or\\)]
也不起作用。
It seems like you want split string by or
. 似乎您想用
or
分割字符串。 Use re.split
: 使用
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']
这应该为您工作:
loc = re.compile('(?:^|or)\s*([^,]+),\s([A-Z]+)')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.