ASP.Net C#新手在这里。我正在寻找有关构建条件的建议,以验证网站网址是否不包含任何ISO语言代码或区域子目录,例如/ us-en,/ ae-en,/ gb-en等)。
示例网址:
•带有语言代码的网站网址-https://www.xbox.com/en-US/xbox-one?xr=shellnav
•没有语言代码的网站网址-https://www.xbox.com/xbox-one?xr=shellnav
示例场景:
•不能访问没有任何ISO语言代码的网站URL,并显示“找不到页面”或404错误消息。
如果建议是负面的,那就更好了-如果网站URL不包含任何ISO语言代码,它将执行语句(“找不到页面”或404错误消息)中的代码块。
答案 0 :(得分:2)
只需使用此正则表达式匹配网址,
\b[a-z]{2}-[A-Z]{2}\b
如果您希望它不区分大小写,只需在正则表达式的开头附加(?i)
,
(?i)\b[a-z]{2}-[a-z]{2}\b
查看此C#代码,该代码显示URL是否匹配
List<string> strings = new List<string>();
strings.Add("https://www.xbox.com/en-US/xbox-one?xr=shellnav");
strings.Add("https://www.xbox.com/xbox-one?xr=shellnav");
var regex = new Regex(@"\b[a-z]{2}-[A-Z]{2}\b");
foreach (string s in strings)
{
if (regex.Match(s).Success) {
Console.WriteLine(s + " --> Matches"); // Write your code here if URL contains language code
} else {
Console.WriteLine(s + " --> Doesn't match"); // Else part if URL doesn't contains language code
}
}
打印
https://www.xbox.com/en-US/xbox-one?xr=shellnav --> Matches
https://www.xbox.com/xbox-one?xr=shellnav --> Doesn't match