使用python RegEx组解析文本,更改组顺序

时间:2017-12-13 00:10:29

标签: python regex

我想解析这样的地名:

à : Paris (France)

但它常常遇到像美国这样的地方

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

我试过这个来解析它:

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

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

如何处理?

1 个答案:

答案 0 :(得分:2)

您可以使用量词?

使状态组可选
à : (?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+)\)