替换R中字符串中的随机字符块

时间:2015-06-11 13:12:47

标签: regex r replace

我有一个文本,我想替换一行中的文本块,如:

  

“\吨\吨\ tFGHGFJKJKJKGDSJS”

  

x =“ABCCCBBHHJJJH”

我有兴趣更改文本块(FGHGFJKJKJKGDSJS)而不会影响其他特殊字符的存在。所以获得:

  

“\吨\吨\ tABCCCBBHHJJJH”

是否存在替换FGHGFJKJKJKGDSJS而无需明确指定字母组合的方法?

我用这种方式找到了一个解决方案:txt [行的n°] = paste0(\ t,\ t,\ t,x)

但我想知道是否有更通用的解决方案。

3 个答案:

答案 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)