首页 > 解决方案 > C#请求路径与路由器路径比较

问题描述

我正在尝试使用 c# asp.net 核心比较以下两个字符串。动机是比较路径参数以外的两条路径(无需手动拆分和一一比较)。是否可以使用任何内置方法在单行中执行此操作?

请求: /api/v1/schedules/S210715001/comments

原文: /api/v1/schedules/{id}/comments

提前致谢。

标签: c#asp.net-core

解决方案


您可以创建包含大括号的原始字符串的正则表达式模式,然后匹配请求的字符串。

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;

推荐阅读