Регулярное выражение скрипта Google Apps для удаления «|»одинарная кавычка, труба, одинарная кавычка - время ожидания - PullRequest
0 голосов
/ 20 декабря 2018

Я удаляю плохо сформированный файл типа csv и сохраняю файл на диск.

Это регулярное выражение вызывает тайм-аут моего скрипта через 30 минут для большого файла.Когда в файле всего 10 записей, он работает нормально.

var content = content.replace(/['|']/g, "|"); // Replaces the "'|'"  

Когда я удаляю это одно регулярное выражение и запускаю приведенную ниже команду, он отлично работает примерно через 2 минуты для записей 20k.

var content = content.replace(/\r\n\d{1,5}\|/g, "\r\n~~$&").replace(/\r\n/g, "").replace(/~~/g, "\r\n"); 

Я перепробовал около 50 вариантов приведенного выше регулярного выражения и не могу заставить его работать.У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 20 декабря 2018

Эта строка не делает то, что вы думаете: она заменит все ' и | в вашем файле на |

var content = content.replace(/['|']/g, "|"); // Replaces the "'|'"

demo: https://regex101.com/r/WpSWC1/2/

если вы хотите заменить только шаблон '|' на |, тогда вы должны использовать

var content = content.replace(/'\|'/g, "|");

demo: https://regex101.com/r/ntwF4a/1

в качестве использования [ ] вРегулярное выражение определяет диапазон символов:

https://www.regular -expressions.info / charclass.html

Этого может быть недостаточно для решения проблемы тайм-аута на вашем 20k records.Возможно, вам придется разделить его на более мелкие части и обработать их по отдельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...