我对正则表达式一点也不熟悉,想在 R 中进行模式匹配和替换。
我想更换图案#1
, #2
在向量中:original = c("#1", "#2", "#10", "#11")
向量的每个值vec = c(1,2)
.
我正在寻找的结果是以下向量:c("1", "2", "#10", "#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"
指定您要匹配从头开始的整个字符串 (^
) 结束 ($
).
在这里,我已经完全匹配了您在本示例中查看的条件,但我猜您需要扩展它:
> gsub("^#([1-2])$", "\\1", original)
[1] "1" "2" "#10" "#11"
所以,基本上,“从一开始,寻找一个哈希符号,后跟确切的数字一或二。一或二应该只是一位数字(这就是为什么我们不使用*
or +
或其他东西)并结束字符串。哦,并捕获一两个,因为我们想要“反向引用”它。”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)