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

标签 python regex

我想解析这样的地名:

à : 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/

相关文章:

python - django-nvd3 load_chart 标签在输出 HTML 中评估为 False 并且不显示图表

python - 当类名以空格开头时,使用 Selenium 解析 html

Python TksimpleDialog 定位在根窗口旁边

javascript替换括号内的文本

python - 使用 PyLab 从两个单独的列表创建 2D 图形

python - pandas groupby 跨列聚合数据

javascript - 正则表达式读取 HTML 并仅匹配文本中的特定单词

sql - 使用 Postgresql 提取第二个找到的匹配子字符串

regex - 在 Perl 中使用正则表达式解析属性

java - 如何检查一个字符串只包含数字和一个小数点?