我正在尝试从 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"
我做错了什么,我该如何纠正? 谢谢,
最佳答案
我们可以尝试sub
。我们匹配零个或多个空格 (\\s*
),后跟括号 (\\(
),后跟一个或多个字符 (.*
) 直到字符串末尾 ($
) 并替换为 ''
。
sub('\\s*\\(.*$', '', a)
#[1] "xyz" "jqk" "abc" "def" "mno" "pqr"
关于替换前面有空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32217534/