我想使用正则表达式在网址列表中找到确切的网址匹配。
string url = @"http://web/P02/Draw/V/Service.svc";
string myword = @"http://web/P02/Draw/V/Service.svc http://web/P02/Draw/V/Service.svc?wsdl";
string pattern = @"(^|\s)" + url + @"(\s|$)";
Match match = Regex.Match(pattern, myword);
if (match.Success)
{
myword = Regex.Replace(myword, pattern, "pattern");
}
但该模式没有返回结果。
您认为这是什么问题?
答案 0 :(得分:2)
除了奇怪的格式,这里有一个匹配列表中每个URL的模式。
Pattern = "http://([a-zA-Z]|/|[0-9])*\.svc";
坦率地说,我认为您在语法或实现方面遇到问题。如果你想调整我上面写的表达式,可以选择这样做:Online RegEx Tool
答案 1 :(得分:1)
您向Regex.Match
方法传递了错误的参数。你需要交换像这样的参数>
Match match = Regex.Match(myword,pattern);
答案 2 :(得分:1)
为什么不在字符串集合上使用Linq(当用空格分割时)
myword.Split(' ').Where(x => x.Equals(url)).Single().Replace(url, "pattern");
答案 3 :(得分:0)
.
是一个特殊字符,因此当您使用它来构建模式时需要转义url
- 您可以使用Regex.Escape(url)