从Rmarkdown文件中提取块作为原始文本
假设我想将rmarkdown块中的所有行提取为原始文本。假装下面的从Rmarkdown文件中提取块作为原始文本,r,regex,r-markdown,R,Regex,R Markdown,假设我想将rmarkdown块中的所有行提取为原始文本。假装下面的foo对象是一个来自readLines的outout(“my\u rmarkdown\u file.Rmd”): 然而,概括rmarkdown块的开始在这里是一致的;行号不是 总而言之,您知道如何从readLines()中提取任何以规则模式为边界的行吗 start = which(foo == "```{r package, include=FALSE}")[1] + 1 end = which(foo == "```")[1
foo
对象是一个来自readLines的outout(“my\u rmarkdown\u file.Rmd”)
:
然而,概括rmarkdown块的开始在这里是一致的;行号不是
总而言之,您知道如何从readLines()
中提取任何以规则模式为边界的行吗
start = which(foo == "```{r package, include=FALSE}")[1] + 1
end = which(foo == "```")[1] - 1
foo[start:end]
如果可以在开始之前进行匹配,那么也可以对结束进行更具体的描述(OP示例的情况并非如此):
foo[3:8]
[1] "library(tidyverse)" "library(lubridate)" "library(kableExtra)" "library(knitr)" "library(sf)" "library(bcmaps)"
start = which(foo == "```{r package, include=FALSE}")[1] + 1
end = which(foo == "```")[1] - 1
foo[start:end]
ends = which(foo == "```")
end = ends[ends > start][1] - 1