从字符串中提取字母(某些数字)和得分

时间:2016-01-14 21:55:45

标签: regex r string character gsub

我有一堆包含数字和字母的各种长度的章程字符串。所有章程字符串都以_结尾,后跟一个数字(例如_30,_100,_500或_1000)。

下面的String对象包含一些示例。

Strings <- c("DET37_30", "DET37_500",  "Ele_100",  "Ele_1000", "NDVI_MeanMax_100", "RadWint_30", "RadWint_500", "Slope_100")

对于每个列名,我想在最终_之前选择所有数字,字母和_number

例如DET37_30DET_500会产生DET37,而Ele_100Ele_1000会产生Ele。

换句话说,我想要在结束_30_100_500_1000之前的所有值。

2 个答案:

答案 0 :(得分:3)

您可以尝试:

gsub("(.*)_[0-9]*","\\1",Strings)

它用下划线之前的任何内容替换整个字符串。

答案 1 :(得分:0)

sub("_\\d+$", "", Strings)
#[1] "DET37"        "DET37"        "Ele"          "Ele"          "NDVI_MeanMax" "RadWint"     
#[7] "RadWint"      "Slope"

此正则表达式匹配下划线后跟一个或多个数字,并使用$锚点仅允许该行末尾的匹配。