带有Stringr的R正则表达式:字符(0)错误

R Regex with Stringr: character(0) Error

我正在尝试重新创建一个旧项目。但是,我猜测 stringr 包中发生了一些变化,因为我的代码不再有效。最小工作示例 (MWE):

library(httr)
library(stringr)
library(XML)
url <- "http://www.lq.com/en/findandbook.html"
page <- GET(url)
s <- content(page, as="text")
push <- unlist(str_match_all(s, "hotelList.push?.+?}")) # stopped working

错误信息:

> push <- unlist(str_match_all(s, "hotelList.push?.+?}")) # stopped working
Error in stri_match_all_regex(string, pattern, cg_missing = "", omit_no_match = TRUE,  : 
Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX)

我的修复:

> push <- unlist(str_match_all(s, "hotelList.push?.+?\}")) # stopped working
> push
character(0)

字符串 s 包含多行文本。我试图找到看起来像的行:

"hotelList.push({title: \"La Quinta Inn & Suites Phoenix I-10 West\", innNumber: \"0853\", latitude:})"

并抓住大括号之间的所有内容。我很讨厌正则表达式,所以在谷歌搜索后我发现以下两个建议也没有用。

str_match_all(s, "/{(.*?)}/")
str_match_all(s, "/{([^}]*)}/")

非常感谢任何建议。

删除正斜杠并转义大括号。

str_match_all(s, "\{([^}]*)\}")

str_match_all(s, "\{\K[^}]*(?=\})")