从正则表达式生成部分随机字符串

时间:2017-06-15 15:12:21

标签: r

我有一组复杂的标识符,它们是数据帧的列名。这个正则表达式匹配所有这些:

regex <- "^PLUTO-.{2}-.{4}-01.{1}-.{3}-.{4}-.{2}$"

现在我想使用这个正则表达式生成随机标识符来得到这样的结果:

"PLUTO-xx-xxxx-01x-xxx-xxxx-xx"
"PLUTO-xx-xxxx-01x-xxx-xxxx-xx"
...

其中x是随机字符。

是否有一个函数可以在R中执行此类操作?我在java和python中找到了这样的主题但在R中没有(只有paste()和collapse()解决方案)。

1 个答案:

答案 0 :(得分:1)

一个选项是gsubfn

library(gsubfn)
gsub("\\^|\\$", "", gsubfn("\\.{([[:digit:]]+)}", ~ paste(rep("x", n), collapse=""), regex))
#[1] "PLUTO-xx-xxxx-01x-xxx-xxxx-xx"