Я понятия не имею, почему это не работает. Я проверил его с помощью одного из лучших инструментов регулярных выражений, которые я нашел в Интернете, чтобы проверить его, и я использую то, что кажется, является символом побега «\» перед знаком «+», чтобы сделать его буквальным «+», но «Скрипты Google» жалуются на высказывание «Недопустимый квантификатор» + «» (строка 2)Ликвидировать регулярное выражение в скрипте Google Apps
Вот мой сценарий с определенными личными детали (это очистить электронную почту, как я использую этот счет как жесткий фильтр спама) опущены:
function getEmailData() {
var find_email_regex = new RegExp("myemail(\+.*|)\@gmail.com");
var emails = GmailApp.getChatThreads();
var process_email = "";
try {
for (i = 0; i < emails.length; i++) {
for (x = 0; x < emails[i].getTo().length; x++) {
if (emails[i].getTo()[x].matches(find_email_regex)) {
email_triage(emails[i]);
break;
}
}
}
} catch (e) {}
}
function email_triage(email) {
var reject_regex = new RegExp("^[^\+]*$");
try {
if (email.matches(reject_regex)) {
email.moveThreadToTrash();
}
else {
email.getMessages()[0].forward("[email protected]");
}
} catch (e) {}
}
есть ли очевидная причина, почему он продолжает говорить недопустимый квантор? Моя цель состоит в регулярном выражении двух вариантов моего адреса, так как спамер может отправить электронное письмо с большим списком, и я хочу только разобрать его электронную почту для дальнейшей обработки.
Он должен обращаться: [email protected] [email protected]
Поэтому буквальное, но у меня нет никакой удачи с ней. Пожалуйста, помогите, спасибо.
это будет 'RegExp (« myemail (\\ +. *?)? @ Gmail \\. Com »);' https://regex101.com/r/fK0aQ7/1 –
@AvinashRaj: Я считаю, что отказ от ответственности в порядке: '/ (x |) /' не совсем эквивалентен '(x)?' (в отсутствие 'x', один фиксирует' '' '', один 'undefined'). И '((?: X)?)' Is pain: p – Amadan
он основан на языке. –