c# - 如果网站 URL 不包含任何语言代码,则执行某些操作
问题描述
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 错误消息)。
解决方案
只需使用此正则表达式匹配 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
推荐阅读
- flutter - 无效的插件规范。无效的“macos”插件规范
- reactjs - React Native Stack Navigation:导航时重新渲染屏幕
- vb.net - 在 VB.NET 中读取 CSV 文件时如何忽略换行符?
- javascript - Angular:在 ngFor 中使用 javascript Object.somefunction()
- css - 背景附件:固定在 Safari 中不起作用
- javascript - 推送和迭代数组以显示历史报告?
- airflow - conn_id 未定义
- json - ansible 将剧本中的所有结果捕获到一个 json 疯狂中
- javascript - youtube 如何在您打开标签时而不是在网站加载后自动启动视频?
- mysql - 无法更新存储函数/触发器中的表“transferoffer”,因为它已被调用此存储函数/触发器的语句使用