Вам не нужно искать ни одного регулярного выражения. Я не знаю, как закодировать код на C#, но я могу предоставить псевдокод.
String urls = "url1,url2";
Regex validUrlRegex = /^(https?:\/\/)?[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+$/;
Array urlsArray = urls.split(',');
Boolean allUrlsArevalid = true;
for(int i=0; i < urlsArray; i++) {
if(!urls.match(validUrlRegex)) {
allUrlsArevalid = false;
break;
}
}
print allUrlsArevalid;
Если вы ищете одно регулярное выражение. Затем
Regex validUrlRegex = "/((?:https?:\/\/)?[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+)/";
Regex desiredRegex = validUrlRegex + "(?:(?:,)" + validUrlRegex + ")*";
urls.match(desiredRegex);
Объяснение
Это упрощенная строка формата
"{validUrlRegex} (?: (?:,) {} ValidUrlRegex) *"
(?:)
не не- захватывая скобки. то есть что-либо внутри него не будет сохранено в результирующем массиве.
(?:(?:,){validUrlRegex})*
это будет соответствовать нулю или более вхождениях ,someUrl
.
Что вы хотите сказать? Каков ваш вклад, который должен соответствовать? –
Я хочу ввести поле, которое может принимать несколько URL-адресов с разделенной запятой (https: //www.google.com,https: //www.facebook.com,docs.google.com,google.com) ... –