Я пытаюсь воссоздать старый проект. Однако я предполагаю, что что-то изменилось в пакете 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:})"
и захватите все, что находится между фигурными скобками. Я плохо разбираюсь в регулярных выражениях, поэтому после поиска в Google я нашел следующие два предложения, которые также не сработали.
str_match_all(s, "/{(.*?)}/")
str_match_all(s, "/{([^}]*)}/")
Любые советы высоко ценится.