正则表达式捕获除单词以外的所有内容(在单词而不是字符处打断)

2024-05-28 23:48:28 发布

您现在位置:Python中文网/ 问答频道 /正文

输入

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\)]也不起作用。你知道吗


Tags: orrebostonlocunitedkingdomcompilefl
2条回答

这应该适合您:

loc = re.compile('(?:^|or)\s*([^,]+),\s([A-Z]+)')

似乎您希望按or拆分字符串。使用^{}

>>> 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']

相关问题 更多 >

    热门问题