Я получаю сообщение об ошибке с Regexp получить выражение - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь извлечь групповой текст из html-кода, соответствующего некоторому регулярному выражению, с кодом Regexp, но он выдает ошибку, которую я не знаю, как решить.

Это источник html http://www.morningstar.es/es/funds/snapshot/snapshot.aspx?id=F00000T4PD&tab=1

И вот код, который я использую:

var fetchedUrl = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
var html = fetchedUrl.getContentText();


 output=html.match(new RegExp("Año</td><td class="col2 value number">(.*)</td><td class="col3 value number/">", 'i'))[1]); 

Я пытаюсь получить данные в красном круге

https://i.stack.imgur.com/3bgbn.png

Заранее спасибо.

1 Ответ

0 голосов
/ 11 апреля 2019

Как насчет этой модификации?

Модифицированный скрипт:

var url = "http://www.morningstar.es/es/funds/snapshot/snapshot.aspx?id=F00000T4PD&tab=1"; // Added
var fetchedUrl = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
var html = fetchedUrl.getContentText();
output = html.match(/Año<\/td><td class="col2 value number">(.*)<\/td>/i)[1]; // Modified
Logger.log(output) // 0,77
  • Если вы хотите использовать new RegExp(), используйте следующий скрипт:

    output = html.match(new RegExp('Año</td><td class="col2 value number">(.*)</td>', 'i'))[1];
    

Справка:

Edit:

Например, когда используется new RegExp(), регулярное выражение может быть создано с использованием переменной, как в следующем примере сценария.

var value = 'def';
var r = new RegExp('abc' + value);
Logger.log(r) // /abcdef/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...