C# 如果网站URL不包含任何语言代码,请执行某些操作

C# 如果网站URL不包含任何语言代码,请执行某些操作,c#,asp.net,regex,args,url-masking,C#,Asp.net,Regex,Args,Url Masking,ASP.NETC#这里是新手。我正在寻找关于构建条件的建议,以验证网站URL是否不包含任何ISO语言代码或区域子目录,例如/us en、/ae en、/gb en等,使用正则表达式 网站URL示例: •带有语言代码的网站URL- •没有语言代码的网站URL- 示例场景: •不得访问没有任何ISO语言代码的网站URL,并显示页面未找到或404错误消息 如果建议采用否定的方式,则效果更好-如果网站URL不包含任何ISO语言代码,则将执行语句中的代码块(未找到页面或404错误消息) 只需使用此正则表达

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

网站URL示例:
•带有语言代码的网站URL-
•没有语言代码的网站URL-

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


如果建议采用否定的方式,则效果更好-如果网站URL不包含任何ISO语言代码,则将执行语句中的代码块(未找到页面或404错误消息)

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

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

如果希望不区分大小写,只需在regex的开头追加
(?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
    }
}

嗨,普什佩什-谢谢你的回复。你能告诉我怎么走吗?我指的是代码的实际检查条件。@hotchesepotato:嘿,伙计,刚刚添加了一个C#示例代码来显示方法。希望能有帮助。@hotchesepotato:检查我更新的C#代码,因为我已经让它更清晰直观了。太酷了,伙计。然而,是否有可能只采用消极的方法?我的意思是,当URL不包含或不匹配此正则表达式时:(?I)\b[a-z]{2}-[a-z]{2}\b它将执行语句中的代码块(无论URL何时包含或匹配正则表达式)。要获得否定方法,您可以使用否定的前瞻正则表达式
^(?。*\b[a-z]{2}-[a-z]{2}\b).*$
或代码方面,您只需在
if
else
块中交换代码即可。
https://www.xbox.com/en-US/xbox-one?xr=shellnav --> Matches
https://www.xbox.com/xbox-one?xr=shellnav --> Doesn't match