Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将url的一部分与c匹配_C#_Regex - Fatal编程技术网

C# 如何将url的一部分与c匹配

C# 如何将url的一部分与c匹配,c#,regex,C#,Regex,我有一个动态列表,如下所示 */职位/ * 如何与C匹配以下URL返回true 也许我可以使用UriTemplate,但URL有很多部分。它们没有静态格式。尝试使用正则表达式的方法: static void Main(string[] args) { var urls = new string[] { "https://www.example.com/*/post/", "https://www.example2.com/videos/*" }; // here regex patter

我有一个动态列表,如下所示

*/职位/

*

如何与C匹配以下URL返回true


也许我可以使用UriTemplate,但URL有很多部分。它们没有静态格式。

尝试使用正则表达式的方法:

static void Main(string[] args)
{
  var urls = new string[] { "https://www.example.com/*/post/", "https://www.example2.com/videos/*" };
  // here regex patterns are created: special characters are escaped and 
  // star, which means here "anything" is replaced by .+ which means "one or more of any charaters"
  var regexes = urls.Select(url => new Regex(url.Replace("/", @"\/").Replace(".", @"\.").Replace("*", ".+")));

  var toCheck = new string[]
  {
  "https://www.example.com/user123/post/",
  "http://www.example.com/user123/post/abc",
  "https://www.example2.com/videos/1234",
  "https://www.example2.com/videos/1234/5678",
  "http://www.example2.com/videos/1234/5678",
  "http://example2.com/videos/1234/video.asp?id=1"
  };

  var valid = toCheck.Where(url => regexes.Where(r => r.Match(url).Success).Any()).ToArray();
}