Используйте regex, чтобы проверить, не начинается ли строка /url с указанной строкой

[RegularExpression(), ErrorMessage = "Youtube link must start with www.youtube.com/watch?v=")]

Мне нужно проверить, не начинается ли ссылка с: http://www.youtube.com/watch?v=

3 ответа

Я только что создал проект MVC и протестировал следующее:

[RegularExpression("^((?!http://www.youtube.com/watch\\?v=).)*$")]

Кажется, это работает.

Более подробную информацию можно найти здесь.

Если вам нужно проверить, что текст начинается с ссылки на YouTube (а не начинается), вы можете использовать:

[RegularExpression("http://www.youtube.com/watch\\?v=.*")]


Если вы хотите только проверить эту конкретную строку, регулярное выражение не требуется. просто сделайте что-то вроде int position = string.IndexOf("http://www.youtube.com/watch?v="); и проверьте, является ли позиция 0

РЕДАКТИРОВАТЬ: Если вам действительно нужно регулярное выражение, вы можете попробовать это: /^(?!^http:\/\/www\.youtube\.com/watch\?v=).*/


Попробуйте этот код, Alan

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
 string txt="http://www.youtube.com/watch?v=";

 string re1="(http:\\/\\/www\\.youtube\\.com\\/watch\\?v=)"; 
 string re2="(www\\.youtube\\.com)";

 Regex r = new Regex(re1+re2,RegexOptions.IgnoreCase|RegexOptions.Singleline);
 Match m = r.Match(txt);
 if (m.Success)
 {
 String httpurl1=m.Groups[1].ToString();
 String file1=m.Groups[2].ToString();
 Console.Write("("+httpurl1.ToString()+")"+"("+file1.ToString()+")"+"\n");
 }
 Console.ReadLine();
 }
 }
}

licensed under cc by-sa 3.0 with attribution.