我有此正则表达式模式可匹配网站:
^(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);
答案 0 :(得分:0)
原因很简单:regex101.com自动应用'MultiLine'
选项,这在您的情况下是必需的。
您的代码应为:
var websiteRegex = new Regex(WEBSITE_PATTERN, RegexOptions.IgnoreCase | RegexOptions.MultiLine);