替换以空格开头的字符串

时间:2015-08-26 03:32:11

标签: regex r grep gsub

我正试图从R中的字符串向量中删除一些不需要的文本,但是无法实现我想要的输出。

我想消除任何一个单词的出现,这可能有多种变体。举个例子:

a<-c("xyz (ALTERNA)","jqk(ALTERNA)","abc(ALTERNO)","def ( ALTERNO)","mno (ALTERNO )","pqr (ALTERNA) ")

我想用括号和任何前面的空格消除任何出现的单词altern[ao],所以我尝试了:

gsub(pattern = "[:blank:]*\\(altern[ao]\\)",replacement = "",a,ignore.case = T)

但它会产生:

[1] "xyz "           "jq"             "abc"            "def ( ALTERNO)" "mno (ALTERNO )" "pqr  "

我想要的输出是:

[1] "xyz"     "jqK"     "abc"     "def"     "mno"     "pqr"

我做错了什么,我该如何纠正? 谢谢,

1 个答案:

答案 0 :(得分:2)

我们可以尝试sub。我们匹配零个或多个空格(\\s*)后跟一个括号(\\(),后跟一个或多个字符(.*),直到字符串结尾($ )并替换为''

sub('\\s*\\(.*$', '', a)
#[1] "xyz" "jqk" "abc" "def" "mno" "pqr"
相关问题