正则表达式,如何在数字后面替换第一个字母

时间:2015-06-29 10:10:31

标签: regex r

我有一个数据框,我想在其中根据变量值变换变量。

如何获取包含以' B +数字'开头的值的行的位置然后用' BLA +相同的数字'?

替换它

更准确地说,这是我想要做的替换的一个例子:' B92MEL-word2'由' BLAB92'。

我试过了:

  grep("^B[[:digit:]]*", dataset$variable) 

它会找到类似' B +数字'但也找到了我不想要的值:

  BLA192/MEL poword2
  BLA25879 - blabla

1 个答案:

答案 0 :(得分:1)

尝试

sub('^(B\\d+).*', 'BLA\\1', str1)
#[1] "BLA192/MEL poword2" "BLA25879 - blabla"  "BLAB92"   

更新

 sub('^B(\\d+).*', 'BLA\\1', str1)
 #[1] "BLA192/MEL poword2" "BLA25879 - blabla"  "BLA92"         

数据

str1 <- c('BLA192/MEL poword2', 'BLA25879 - blabla', 'B92MEL-word2')