R - 传递变量的正向前看

Val*_*ina 4 regex variables r

我陷入了正常的表达.我通常使用这行代码来查找字符串中重叠的重复:

gregexpr("(?=ATGGGCT)",text,perl=TRUE)
[[1]]
[1]  16  45  52  75 203 210 266 273 327 364 436 443 480 506 534 570 649
attr(,"match.length")
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
attr(,"useBytes")
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

现在我想给gregexpr一个包含在变量中的模式:

x="GGC"
Run Code Online (Sandbox Code Playgroud)

当然,如果我传递变量x,gregexpr将要搜索"x"而不是变量包含的内容

gregexpr("(?=x)",text,perl=TRUE)
[[1]]
[1] -1
attr(,"match.length")
[1] -1
attr(,"useBytes")
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

gregexpr在这种积极展望的情况下,如何将变量传递给我?

gag*_*ews 5

我玩这个sprintf功能:

x <- "AGA"
text <- "ACAGAGACTTTAGATAGAGAAGA"
gregexpr(sprintf("(?=%s)", x), text, perl=TRUE)
## [[1]]
## [1]  3  5 12 16 18 21
## attr(,"match.length")
## [1] 0 0 0 0 0 0
## attr(,"useBytes")
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)

sprintf%s值替换出现的值x.

  • 是的我几乎用`sprintf`代替=) (2认同)