【发布时间】:2020-04-05 08:00:05
【问题描述】:
给定一个字符串,我想在该字符串中提取 json。
非常类似于这个问题:Find JSON strings in a string 细绳。只为 R。
基本上,如果需要,我需要使用正则表达式和转义字符。因此,我调查了:Is there an R function to escape a string for regex characters。
我尝试了什么:
txt <- "asdd {a:b, c:d} asdasd"
library(stringr)
quotemeta <- function(string) {
str_replace_all(string, "(\\W)", "\\\\\\1")
}
quotemeta("\{(?:[^{}]|(?R))*\}")
str_extract_all(string = txt, pattern = quotemeta("\\{(?:[^{}]|(?R))*\\}"))
str_extract_all(string = txt, pattern = "\\{\\(\\?\\:\\[\\^\\{\\}\\]\\|\\(\\?R\\)\\)\\*\\}")
str_extract_all(string = txt, pattern = "\\\\{\\(\\?\\:\\[\\^\\{\\}\\]\\|\\(\\?R\\)\\)\\*\\\\}")
【问题讨论】:
-
ICU 正则表达式引擎不支持递归。将
regmatches/gregexpr与 PCRE 正则表达式引擎一起使用。