Я пытаюсь воссоздать старый проект. Тем не менее, я предполагаю, что что-то изменилось в пакете stringr, потому что мой код больше не работает. Минимальный рабочий пример (MWE): сообщениеR Regex with Stringr: character (0) Ошибка
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:})"
и захватить все между фигурными фигурными скобками. Я сосать в регулярных выражениях, поэтому после Googling я нашел следующие два предложения, которые также не сработали.
str_match_all(s, "/{(.*?)}/")
str_match_all(s, "/{([^}]*)}/")
Любые советы приветствуются.
Очень полезно. Как захватить строки с шаблоном: 'hotelList.push ({......})' хотя? – user2205916
используйте этот '' hotelList \\. Push \\ (\\ {. *? \\} \\) "' –
Это не сработало, но это произошло: 'str_match_all (s," hotelList \\. Push \ \ (\\ {([^}] *) \\} "))'. Большое спасибо @ avinish-raj – user2205916