knitr-rinline表达式中的尖括号

knitr-rinline表达式中的尖括号,r,knitr,R,Knitr,我遇到了knitr中HTML模板的rinline模式的问题: inline.code : chr "<!--\\s*rinline\\s*([^>]*)\\s*-->" inline.code:chr“” 这种模式的本质意味着knitr不识别任何本身包含尖括号的rinline表达式。例如: <ul> <!--rinline I(paste("<li>",gene.black.list,"</li>",collapse="",sep=

我遇到了knitr中HTML模板的rinline模式的问题:

inline.code : chr "<!--\\s*rinline\\s*([^>]*)\\s*-->"
inline.code:chr“”
这种模式的本质意味着knitr不识别任何本身包含尖括号的rinline表达式。例如:

<ul>
<!--rinline I(paste("<li>",gene.black.list,"</li>",collapse="",sep="")) -->
</ul>
引擎没有像我所希望的那样对其进行评估(gene.black.list只是一个字符向量,希望代码的意图是明确的)。为了解决这个问题,我做了以下工作:

<!--begin.rcode echo=F
  tagged.gene.black.list = paste("<li>",gene.black.list,"</li>",collapse="",sep="")
  end.rcode-->

<ul>
<!--rinline I(tagged.gene.black.list) -->
</ul>


这是可行的,但对于创建多余的额外变量和多个代码块似乎有点不满意。有没有一种更聪明、更整洁的方式让我错过了呢?

我认为这个问题应该在Github上解决。请从Github下载开发版本。基本上,我将
更改为

是的,我需要更改正则表达式,但目前我不知道什么是正确的。理想情况下,我希望匹配在看到
-->
时停止,这听起来像是非贪婪匹配,但
'
并不能解决问题(我想PCRE应该能够解决它)。所以我也需要帮助。啊,好的。无论如何,谢谢你的回答(和很棒的工具)——至少我没有遗漏一些明显的东西!