带有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[^}]*(?=\})")
我正在尝试重新创建一个旧项目。但是,我猜测 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[^}]*(?=\})")