这是一个正则表达式问题,关于它在R中的实现。我使用knitr来排版一些文档,并且需要使用output hooks修改输出LaTeX。为了做到这一点,我需要使用正则表达式在LaTeX中找到一些模式。
一个这样的模式是\end{figure}
。使用regexpr
函数,我试图匹配这种模式,但到目前为止我的尝试都没有成功:
regexpr('\\end{figure}', 'this is a multiline text
some more test here
before we get to the good stuff
\\end{figure}', perl = TRUE)
我该如何匹配这种模式?
答案 0 :(得分:1)
使用rex可能会使这类任务变得更简单一些。特别是它会为你正确地逃避反斜杠和花括号。
x <- 'this is a multiline text
some more test here
before we get to the good stuff
\\end{figure}'
library(rex)
re <- rex('\\end{figure}')
re_matches(x, re)
#>[1] TRUE
# you can still use the regular expressions rex constructs
# in all the normal R regular expression functions as well.
regexpr(re, x, perl = TRUE)
#>[1] 111
#>attr(,"match.length")
#>[1] 12
#>attr(,"useBytes")
#>[1] TRUE