-2

ASP.Net C# 新手在这里。我正在寻找有关构建条件以使用正则表达式验证网站 URL 是否不包含任何 ISO 语言代码或区域子目录(​​例如 /us-en、/ae-en、/gb-en 等)的建议。

示例网站 URL:
• 带有语言代码的网站 URL -  https://www.xbox.com/en-US/xbox-one?xr=shellnav
• 没有语言代码的网站 URL -  https://www.xbox.com /xbox-one?xr=shellnav

示例场景:
• 不能访问没有任何 ISO 语言代码的网站 URL,并显示页面未找到或 404 错误消息。

如果建议是负面的,那就更好了——如果网站 URL 不包含任何 ISO 语言代码,它将执行语句中的代码块(页面未找到或 404 错误消息)。

4

1 回答 1

2

只需使用此正则表达式匹配 URL,

\b[a-z]{2}-[A-Z]{2}\b

演示

如果您希望它不区分大小写,只需(?i)在正则表达式的开头附加,

(?i)\b[a-z]{2}-[a-z]{2}\b

查看这个打印 URL 是否匹配的 C# 代码,

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
于 2019-02-24T18:11:48.730 回答