在R中提取子串(正则表达式)

时间:2018-02-14 08:51:38

标签: r regex

我有以下字符串:

"Richard H. Hoffman (60-100)" "Alex S. Simmon (72-333)" "Michael S. Pip (1-0)"

如何使用正则表达式仅从字符串中提取名称? 所以结果应该是这样的:

"Richard H. Hoffman" "Alex S. Simmon" "Michael S. Pip"

谢谢

2 个答案:

答案 0 :(得分:2)

我们可以使用sub匹配零个或多个空格(\\s*),后跟(和其他字符(.*),替换为空白("" })

sub("\\s*\\(.*", "", str1)
#[1] "Richard H. Hoffman" "Alex S. Simmon"     "Michael S. Pip"

数据

str1 <- c("Richard H. Hoffman (60-100)", "Alex S. Simmon (72-333)",
             "Michael S. Pip (1-0)")

答案 1 :(得分:1)

您可以使用

gsub("^([^()]+).*", "\\1", your_vector)

这会将 ()中的任何内容都捕获到第1组中,并将字符串替换为第一组,请参阅a demo on regex101.com