数字后跟连字符

时间:2018-06-15 20:48:39

标签: r regex

我有包含字符串的数据框。请参阅以下代码 -

mydf = data.frame(x=c("ads 1-x as", "sda 1-xxaa sad", "sda a-x sad"))

我想要跟随模式的单词:数字后跟连字符后跟一个字母,只能用数字替换。

预期输出

"ads 1 as", "sda 1-xxaa sad", "sda a-x sad"

1 个答案:

答案 0 :(得分:2)

我们可以使用sub(或者如果有更多实例,gsub)来匹配作为一组捕获的一个或多个数字(\\d+ - 请注意单词边界(在此之前\\b)之后是连字符(-)和单个字母([A-Za-z])(为了避免与更多字母匹配) - 使用单词边界 - \\b )并替换为捕获组的后向引用(\\1

gsub("\\b(\\d+)-[A-Za-z]\\b", "\\1", mydf$x)
#[1] "ads 1 as"       "sda 1-xxaa sad" "sda a-x sad"