2015-12-07 5 views
1

функция, которая я тестирование не работал каждый день до сих пор, когда консоль возвращаетсяGoogle Scripts: «Слишком сложно регулярное выражение»

"Error: Too complex regexp." 

Теперь, правда, регулярное выражение долго:

titleList = titleList.join("|"); 
var reg = "("+titleList+")?()?\\d+[ab]?(:\\d+(-\\d+)?)?"; 

где titleList - это массив из 200 нечетных значений. Регулярное выражение проверяет часть текста, чтобы найти что-то вроде «De Vita Caesarium 7:14», где «De Vita Caesarium» из списка названий.

Однако это регулярное выражение работает до сегодняшнего дня. Изменились ли ограничения, установленные в скриптах Google? Если да, то как я могу изменить выражение, не попадая в ошибку?

+1

Есть ли новый заголовок с символом, который нужно сбежать? –

+0

^^, что сказал Хуан, безусловно наиболее вероятное объяснение. [Этот вопрос и его ответы] (http://stackoverflow.com/questions/2593637/how-to-escape-regular-expression-in-javascript) могут быть полезны для решения этого. –

+0

Пробовал использовать функцию, чтобы избежать всего заголовка, но проблема продолжалась. Я даже снова проверил titleList (на веб-сайте, который он вытащил), и у него нет никаких символов, которые необходимо экранировать. – shman613

ответ

1

This documentation объясняет, что:

Сложность (Компонент) Ограничения

Чтобы гарантировать, что контент-фильтры с регулярными выражениями не вызывает обработку задержки для вашей электронной почты, Content Manager ограничивает сложность регулярных выражений , Регулярное выражение может содержать до 100 компонентов. Content Manager рассматривает каждый специальный символ, набор символов и строку буквенных символов как отдельный компонент. Например, regex \ Wc [i |!] Alis \ W содержит следующие 9 компонентов: \ W, c, [, i, | ,! ,], alis, \ W

Я могу только догадываться, что сценарии приложений Google имеют аналогичное ограничение. Вероятно, у вас больше титулов, чем раньше. Если вы снова протестируете жестко закодированное количество титров (меньше), и оно работает, вы знаете, что это ограничение.

+0

Выглядит хорошо. Я проверю это. – shman613

Смежные вопросы