我必须只匹配下面模式中的第一个国家/地区名称。国家/地区名称以大写字母全部显示。我使用以下代码来获取匹配项,但它匹配所有国家/地区。
'\\b[A-Z]{2,}.\\b'
例如:在下面的模式中,我只想要英国
x = "~ London, Greater London ~ UNITED KINGDOM;~ Ottawa, Ontario ~ CANADA;~,~ AUSTRALIA;~,~ POLAND;~,~ USA"
答案 0 :(得分:2)
这似乎有效:
regmatches(x, regexpr('\\b[A-Z ]{2,}\\b', x))
# [1] "UNITED KINGDOM"
我刚添加了一个空格来制作字符集[A-Z ]
。请注意,regexpr
获得第一个匹配,gregexpr
获得所有匹配(类似于sub
vs gsub
)。
有关详细信息,请参阅?regexpr
上的官方文档。