我有一个字符串向量,看起来像这样:c("abc@40gmail.com", "xyz@50gmail.com")
。出于某种原因,@
之后有随机/不同的数字,我正在尝试删除它们。使用正则表达式,如何告诉R删除或替换"@"
之后的数字,因此我最终得到c("abc@gmail.com", "xyz@gmail.com")
。我对Regex了解不多,所以如果有人不仅可以提供代码,还可以提供代码的简要说明,我真的很感激。谢谢!
答案 0 :(得分:3)
一个选项是
x <- c("abc@40gmail.com", "xyz@50gmail.com")
sub("@\\d+", "@", x)
## [1] "abc@gmail.com" "xyz@gmail.com"
答案 1 :(得分:1)
您可以使用正面值守或\K
sub("(?<=@)\\d+", "", x, perl=T)
\\d+
匹配一个或多个数字字符。因此(?<=@)
强制正则表达式引擎在@
符号后立即查看,然后使其匹配以下一个或多个数字字符。由于lookarounds属于PCRE系列,因此您需要启用perl=TRUE
参数。
或强>
sub("@\\K\\d+", "", x, perl=T)