gpt4 book ai didi

regex - 在 Sweave 表达式中查找 R 代码的正则表达式

转载 作者:行者123 更新时间:2023-12-04 12:21:14 24 4
gpt4 key购买 nike

我在一些 .Rnw 文件的文本中包含了一些 sweave 表达式。下面的段落包含两个 sweave 表达式。我可以使用什么正则表达式来查找每个表达式中的 R 代码。所以正则表达式应该可以找到mean(mtcars$mpg)和/或 summary(lm(mpg ~ hp + drat, mtcars))

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \Sexpr{mean(mtcars$mpg)}. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat \Sexpr{summary(lm(mpg ~ hp + drat, mtcars))} non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

最佳答案

正则表达式为 (?<=\\Sexpr{).+?(?=})

  • (?<=\\Sexpr{)部分正面回顾
  • (?=})正向预测
  • .+?将懒惰地匹配上述两个环视之间的所有内容。

  • 在这里阅读更多。 http://www.regular-expressions.info/lookaround.html

    例如。在 R 中(因为你标记了 R)
    txt <- 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \\Sexpr{mean(mtcars$mpg)}. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat \\Sexpr{summary(lm(mpg ~ hp + drat, mtcars))} non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'

    regmatches(txt, gregexpr('(?<=\\Sexpr{).+?(?=})', txt, perl=T))

    ## [[1]]
    ## [1] "mean(mtcars$mpg)" "summary(lm(mpg ~ hp + drat, mtcars))"

    关于regex - 在 Sweave 表达式中查找 R 代码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805636/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com