正则表达式 – R中的模式匹配和替换

前端之家收集整理的这篇文章主要介绍了正则表达式 – R中的模式匹配和替换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对正则表达式一点都不熟悉,想在R中进行模式匹配和替换.

我想用向量vec = c的每个值替换向量中的模式#1,#2:original = c(“#1”,“#2”,“#10”,“#11”)( 1,2).

我要找的结果是以下向量:c(“1”,“2”,“#11”)
我不知道该怎么做.我试过做:

for(i in 1:2) {
    pattern = paste("#",i,sep = "")
    original = gsub(pattern,vec[i],original,fixed = TRUE)
}

但我得到:

#> original
#[1] "1"  "2"  "10" "11"

而不是:“1”“2”“#10”“#11”

我将不胜感激任何帮助!谢谢!

使用gsubfn的另一个选择:
library(gsubfn)
gsubfn("^#([1-2])$",I,original)   ## Function substituting
[1] "1"   "2"   "#10" "#11"

或者,如果要显式使用向量的值,请使用vec值:

gsubfn("^#[1-2]$",as.list(setNames(vec,c("#1","#2"))),original)

或公式表示法等效于函数表示法:

gsubfn("^#([1-2])$",~ x,original)   ## formula substituting

猜你在找的正则表达式相关文章