【发布时间】:2017-07-06 22:02:26
【问题描述】:
我有几个格式的句子:
卡塔尔公民的签证要求是其他国家当局对卡塔尔公民施加的行政入境限制。
英国公民的签证要求是其他国家当局对英国公民施加的行政入境限制。
对白俄罗斯公民的签证要求是其他国家当局对白俄罗斯公民施加的行政入境限制。
我只想匹配上面句子中的“[国家名称]的公民”。如您所见,其中一些以“中国公民”结尾。其他人继续,有些人有像“the”这样的词,有些国家有两个或多个像“英国”这样的词。
如何编写一个 (pythonic) 正则表达式来匹配上述所有语句及其变体中的“COUNTRY_NAME 的公民”?
【问题讨论】:
-
这对于正则表达式来说肯定不是一件容易的事。
-
我对@987654324@ 不太熟悉,而且在我看来,由于国家/地区可以包含多个单词,而且它们可能不会全部使用大写字母,因此对于您构建一个包含所有国家/地区英文名称的列表,然后进行过滤。
-
国名总是大小写正确吗? (首字母大写)
-
首先,请说明您的问题。你能描述所有可能的短语吗?你能描述短语分隔符吗?例如,您如何区分“巴西合众国”和“北美合众国”?您如何区分“特立尼达和多巴哥”与“法国和德国”? - - - - 除非你能指定语言问题的边界,否则要求一个具体的解决方案是行不通的。相反,也许您需要的是所有国家的综合清单;那么你可以从“citizens of”中找到它。
-
由于没有可变国家/地区,请安装regexformat.com app。将三元字符串中所有可能的国家/地区名称转储到正则表达式工具。它创建了一个完整的、多级的正则表达式树,您可以使用它。只需将
citizens of放在它前面。 Screenshot 的工具。这是使用该工具创建的175,000 word dictionary 示例。