c# - C#请求路径与路由器路径比较
问题描述
我正在尝试使用 c# asp.net 核心比较以下两个字符串。动机是比较路径参数以外的两条路径(无需手动拆分和一一比较)。是否可以使用任何内置方法在单行中执行此操作?
请求: /api/v1/schedules/S210715001/comments
原文: /api/v1/schedules/{id}/comments
提前致谢。
解决方案
您可以创建包含大括号的原始字符串的正则表达式模式,然后匹配请求的字符串。
string original = @"/api/v1/schedules/{id}/comments";
string requested = @"/api/v1/schedules/S210715001/comments";
string originalPattern = Regex.Replace(original, @"\{[^\}]*\}", @"\w*");
var isMatch = Regex.Match(requested, $"^{originalPattern}$", RegexOptions.IgnoreCase).Success;
推荐阅读
- twilio - 是否可以在 Twilio Autopilot 调用的 Twilio 函数中访问 Twilio 目标号码?
- python - 为数据框中列的每个单元格分配随机值
- python - 在python中重用函数
- nginx - 如何为 kubernetes 仪表板配置 basehref
- winapi - 如何使用 MFC 函数绘制曲线文本?
- python - 如果满足条件或发生错误,则执行代码
- java - 平移 BufferedImage
- php - 如何发送字符串数组 Guzzle
- java - Java字符串用评估的键替换正则表达式模式
- rust - 为什么在使用期货箱中的 block_on 时,我会“对‘当前未在 Tokio 运行时运行’感到恐慌”?