我想解析这样的地名:
à : Paris (France)
但是在美国经常会遇到这样的地方
à : Boston (MA) (États-Unis)
我尝试用这个来解析它:
place='à : (?P<city>.+) (\((?P<country>.+)\)|(\((?P<state>.+)\) \((?P<country>.+)\)))'
但是好像不行,超出了我目前对初学者的理解。
如何处理这个问题?
最佳答案
您可以使用量词 ?
将状态组设为可选:
à : (?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+)\)
关于python - 使用 python RegEx 组解析文本并更改组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47783593/