正则表达式-获取匹配括号内的内容

布雷泰夫

我有一个形式的文本:

text <- "\\examples{afunction(x = list()){\nx<-3\n}y<-2 server <- function(input, output, session) {\n  output$res_bttn1 <- renderPrint({input$bttn1})\n}\n}"

我想获得\\examples{}\n末尾没有)的内容,即

"afunction(x = list()){\nx<-3\n}y<-2 server <- function(input, output, session) {\n  output$res_bttn1 <- renderPrint({input$bttn1})\n}"

问题是里面还有其他括号\\examples{}因此,我认为我必须找到一个正则表达式来检测哪个}关闭\\examples{(但是我对如何获得相同结果的其他建议开放态度)。

我怎样才能做到这一点?优选碱R溶液。

维克多·史翠比维

您可以使用

\\examples({([^{}]*?(?:(?1)[^{}]*?)*)\s*})

请参阅regex演示

细节

  • \\examples-一个\examples字符串
  • ({([^{}]*?(?:(?1)[^{}]*?)*)\s*})-第1组(由于正则表达式子例程(?1)将递归此子模式,因此是必要的):
    • {-一个{字符
    • ([^{}]*?(?:(?1)[^{}]*?)*) -第2组(您需要的值):
      • [^{}]*?-零个或多个字符,{}尽可能少
      • (?:(?1)[^{}]*?)*-整个第1组模式中出现零次或多次出现,其次是零个或多个字符,{字符}数尽可能少
    • \s*-零个或多个空格(在结尾处修剪空格}
    • }-一个}字符

参见R演示

text <- "\\examples{afunction(x = list()){\nx<-3\n}y<-2 server <- function(input, output, session) {\n  output$res_bttn1 <- renderPrint({input$bttn1})\n}\n}"
pattern = "\\\\examples({([^{}]*?(?:(?1)[^{}]*?)*)\\s*})"
unlist(regmatches(text, regexec(pattern, text, perl=TRUE)))[3]
# => [1] "afunction(x = list()){\nx<-3\n}y<-2 server <- function(input, output, session) {\n  output$res_bttn1 <- renderPrint({input$bttn1})\n}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“)”匹配括号的正则表达式

来自分类Dev

正则表达式与=匹配的括号

来自分类Dev

Kotlin正则表达式匹配括号内容

来自分类Dev

QT正则表达式在括号之间获取内容

来自分类Dev

正则表达式在括号内的匹配

来自分类Dev

正则表达式匹配括号内的任何字符

来自分类Dev

正则表达式,匹配大括号内的值

来自分类Dev

正则表达式匹配括号内的数值

来自分类Dev

正则表达式匹配括号内的字母

来自分类Dev

正则表达式删除特定括号内的内容

来自分类Dev

正则表达式-括号内的所有内容

来自分类Dev

正则表达式以获取括号内的单词

来自分类Dev

正则表达式匹配大括号内的内容,而嵌套大括号不会破坏大括号

来自分类Dev

表达式不匹配正则表达式

来自分类Dev

正则表达式匹配纠结的表达式

来自分类Dev

使用正则表达式匹配表达式

来自分类Dev

正则表达式匹配多个表达式?

来自分类Dev

正则表达式 URL 表达式匹配

来自分类Dev

正则表达式嵌套括号

来自分类Dev

带点括号,正则表达式

来自分类Dev

括号中的正则表达式

来自分类Dev

双括号的正则表达式

来自分类Dev

正则表达式中的括号

来自分类Dev

正则表达式-可选括号

来自分类Dev

括号之间的正则表达式

来自分类Dev

正则表达式匹配正则表达式模式之外的所有内容

来自分类Dev

如何使用正则表达式使用正则表达式匹配以“ $”结尾的内容?

来自分类Dev

正则表达式以匹配括号和JavaScript括号

来自分类Dev

正则表达式匹配括号和大括号