替换前面有空格的字符串

标签 r regex

我正在尝试从 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/

相关文章:

Javascript正则表达式匹配字符串但只显示文本

php - 验证澳大利亚 DVA 号码(长度可能可变)

regex - 提取百分比的正则表达式

javascript - Javascript正则表达式:测试文本是否仅包含一组字符

R重命名函数中传递的列

r:仅当两个单独的数据帧具有相同内容时,如何合并它们

带括号的 R grep 模式正则表达式

r - 使用 R 创建乘法交互变量

r - 如何在R中仅打印4位数字而不是科学计数法的p值?

python - 使用python将未格式化的字符串解析为字典