用python正则表达式组分析文本,组顺序改变

2024-04-29 12:34:59 发布

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

我想这样解析地名:

à : Paris (France)

但在美国经常遇到这样的地方

à : Boston (MA) (États-Unis)

我试着用这个来解析它:

place='à :  (?P<city>.+) (\((?P<country>.+)\)|(\((?P<state>.+)\) \((?P<country>.+)\)))'

但它似乎不起作用,它超出了我目前对初学者的理解

怎么处理


Tags: city地方placebostoncountrystateparis初学者
1条回答
网友
1楼 · 发布于 2024-04-29 12:34:59

可以使用量词?使状态组成为可选的:

à : (?P<city>\S+) (?:\((?P<state>\S+)\) )?\((?P<country>\S+)\)
#                 ^^^                   ^^

参见demo

在这种情况下,它将同时匹配:

à : (?P<city>\S+) \((?P<state>\S+)\) \((?P<country>\S+)\)

以及

à : (?P<city>\S+) \((?P<country>\S+)\)

相关问题 更多 >