我有一个文本,我想替换一行中的文本块,如:
“\吨\吨\ tFGHGFJKJKJKGDSJS”
带
x =“ABCCCBBHHJJJH”
我有兴趣更改文本块(FGHGFJKJKJKGDSJS)而不会影响其他特殊字符的存在。所以获得:
“\吨\吨\ tABCCCBBHHJJJH”
是否存在替换FGHGFJKJKJKGDSJS而无需明确指定字母组合的方法?
我用这种方式找到了一个解决方案:txt [行的n°] = paste0(\ t,\ t,\ t,x)
但我想知道是否有更通用的解决方案。
答案 0 :(得分:0)
> a = "\t\t\tDFGGD"
> gsub("(\t\t\t).*","\\1ABCDF",a)
[1] "\t\t\tABCDF
答案 1 :(得分:0)
> library(stringr)
> mystring <- "\t\t\tFGHGFJKJKJKGDSJS"
> x <- "ABCCCBBHHJJJH"
> str_replace(mystring,"\\w+",x)
[1] "\t\t\tABCCCBBHHJJJH"
\w+
意味着匹配任何字符或数字或至少一次并且尽可能多地下划线。因此,不是普通字符的每个部分都将被x
变量替换。
答案 2 :(得分:0)
mystring <- "\t\t\tFGHGFJKJKJKGDSJS"
x <- "ABCCCBBHHJJJH"
sub('\\w+',x,mystring,ignore.case=T)