使用Regex查找URL在Regex101.com上有效,但在C#代码中无效

时间:2018-11-14 23:06:55

标签: c# regex

我有此正则表达式模式可匹配网站:

^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$

如果我使用以下值对其进行测试(http://www.regex101.com):

http://www.google.com 
google.com 
somesite.com

我在所有三个值上都匹配。

但是此代码在C#中不起作用(无匹配项):

var websiteRegex = new Regex(@"^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$", RegexOptions.IgnoreCase);
var stripped = stripped = phoneRegex
    .Replace("http://www.google.com www.google.com somesite.com", string.Empty);

1 个答案:

答案 0 :(得分:0)

原因很简单:regex101.com自动应用'MultiLine'选项,这在您的情况下是必需的。

您的代码应为:

var websiteRegex = new Regex(WEBSITE_PATTERN, RegexOptions.IgnoreCase | RegexOptions.MultiLine);