Учитывая несколько сценариев, как я могу сопоставить и извлечь буквенно-цифровые символы (и символы) в строке, содержащей URL-адреса?В настоящее время я использую Google Apps Script для извлечения обычного основного текста гиперссылки из сообщения цепочки Gmail, и я в основном хотел бы сопоставить и извлечь заголовок из некоторых строк следующим образом:
var scenario1 = "Testing: Stack Overflow Title 123? https://www.stackoverflow.com";
... в котором я хотел бы только вывести: "Testing: Stack Overflow Title 123?"
Вот еще один сценарий:
var scenario2 = "https://www.stackoverflow.com Testing: Stack Overflow Title 123? https://www.stackoverflow.com";
... снова, в котором я хотел бы тольковыходные данные: "Testing: Stack Overflow Title 123?"
Я попробовал следующее для первоначального тестирования, чтобы увидеть, содержит ли строка сначала URL-адрес (в котором я подтвердил, что регулярное выражение для соответствующих URL-адресов работает и выводит: https://www.stackoverflow.com
), изатем проверяет, существует ли заголовок для его извлечения, но безрезультатно:
var scenario1 = "Testing: Stack Overflow Title 123? https://www.stackoverflow.com";
var scenario2 = "https://www.stackoverflow.com Testing: Stack Overflow Title 123? https://www.stackoverflow.com";
var urlRegex = /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/;
var titleRegex = /^[a-zA-Z0-9_:?']*$/;
var containsUrl = urlRegex.test(element);
if (containsUrl) {
var containsTitle = titleRegex.test(scenario1);
if (containsTitle) { // No match, and doesn't run
var title = titleRegex.exec(element)[0];
Logger.log("title: " + title);
}
}
По сути, я бы хотел шаблон Regex, который соответствует ВСЕМУ, но URL-адресам, если возможно