我想从带有“ M_South_Africa_5_14 ”和“ P_Zimbabwe_Tot ”等字符串的向量中提取国家/地区。我一直在尝试使用单个 grep 或 stringr::str.extract 语句来完成它,但没有成功。当然,我可以用 '_' 打破字符串,然后收集碎片,但是可以用正则表达式来做到这一点吗?
grep(value = TRUE,
x = 'M_South_Africa_5_14',
pattern = '(?!^[PMF]{1})(?![_])([A-Za-z]{2,20})[_][A-Za-z]{2,20}(?!$)|(?!^[PMF]{1})(?![_])([A-Za-z]{2,20})',
perl = TRUE)
当然,简化这个正则表达式怪物会很棒,但我实际上想知道我是否可以在 R 上运行正则表达式查找。