如何在R中匹配此模式

时间:2016-08-08 15:49:50

标签: regex r

我必须只匹配下面模式中的第一个国家/地区名称。国家/地区名称以大写字母全部显示。我使用以下代码来获取匹配项,但它匹配所有国家/地区。

'\\b[A-Z]{2,}.\\b'

例如:在下面的模式中,我只想要英国

x = "~ London, Greater London ~ UNITED KINGDOM;~ Ottawa, Ontario ~ CANADA;~,~ AUSTRALIA;~,~ POLAND;~,~ USA"

1 个答案:

答案 0 :(得分:2)

这似乎有效:

regmatches(x, regexpr('\\b[A-Z ]{2,}\\b', x))
# [1] "UNITED KINGDOM"

我刚添加了一个空格来制作字符集[A-Z ]。请注意,regexpr获得第一个匹配,gregexpr获得所有匹配(类似于sub vs gsub)。

有关详细信息,请参阅?regexpr上的官方文档。