На самом деле это не поможет с вашей более сложной проблемой, но я все равно публикую это, потому что это простое решение для людей, которые не выполняют глобальный поиск, как вы.
Я упростил регулярное выражение в ответе, чтобы быть более ясным (это не решение вашей точной проблемы).
var re = /^(.+?):"(.+)"$/
var regExResult = re.exec('description:"aoeu"');
var purifiedResult = purify_regex(regExResult);
// We only want the group matches in the array
function purify_regex(reResult){
// Removes the Regex specific values and clones the array to prevent mutation
let purifiedArray = [...reResult];
// Removes the full match value at position 0
purifiedArray.shift();
// Returns a pure array without mutating the original regex result
return purifiedArray;
}
// purifiedResult= ["description", "aoeu"]
Это выглядит более подробным, чем из-за комментариев, это то, что он выглядит как без комментариев
var re = /^(.+?):"(.+)"$/
var regExResult = re.exec('description:"aoeu"');
var purifiedResult = purify_regex(regExResult);
function purify_regex(reResult){
let purifiedArray = [...reResult];
purifiedArray.shift();
return purifiedArray;
}
Обратите внимание, что любые группы, которые не соответствуют, будут перечислены в массиве как значения undefined
.
В этом решении используется оператор распространения ES6 для очистки массив специальных значений регулярных выражений. Вам нужно будет запустить ваш код через Babel , если вы хотите поддержку IE11.
Вы, конечно, можете использовать rvest, но это будет намного сложнее. Вам нужно следить за вкладкой сети в инструментах разработчика, нажимая кнопку экспорта данных . Это будет почтовый запрос, и вам нужно будет скопировать почтовый запрос с заголовками и данными формы.
Или вы можете решить это, используя RSelenium в несколько строк.
library(RSelenium)
rmDr <- rsDriver(port = 4444L)
client <- rmDr$client
url <- "https://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=steamer600&team=0&lg=all&players=0"
client$navigate(url)
export_buttom <- client$findElement(using = "css",value = "#ProjectionBoard1_cmdCSV")
export_buttom$clickElement()