c# - 如何从 2 个不同的字符串中获取字典中的值
问题描述
我有 2 个字符串
string str="nl/vacature/admin/Employee/home/details/"
和另一个
string template ="nl/vacature/{model}/{controller}/{Action}/{Method}/"
我在寻找
model=admin,controller=Employee,Action=home,Method=details
在对象或键值格式的字典中。它们的 URL 和模板键可能以不同的顺序排列
string template ="vacature/jobcount/{controller}/{Action}/{model}/{Method}/"
string str ="vacature/jobcount/Employee/home/admin/details/"
解决方案
这是一个正则表达式解决方案,但您需要稍微更改模板。
string url = "nl/vacature/admin/Employee/home/details/";
string template = "nl/vacature/(?<Model>.*?)/(?<Controller>.*?)/(?<Action>.*?)/(?<Method>.*?)/";
var matches = Regex.Match(url, template).Groups.Cast<Group>().Where(g => !int.TryParse(g.Name, out _)).ToDictionary(m => m.Name, m => m.Value);
// Dictionary<string, string>(4) { { "Model", "admin" }, { "Controller", "Employee" }, { "Action", "home" }, { "Method", "details" } }
但是,外部解析库可能更合适。您可以找到一些 URL 解析器而不是使用正则表达式。
推荐阅读
- javascript - 按住键时忽略重复的键盘事件
- python - Kafka 简单生产者不发送消息也不给出错误
- python - 用相应的值替换 Numpy 数组中多个出现的元素集
- python - 我如何知道一个元素在 python 中属于哪个自组织图 (SOM) 集群?
- kotlin - 使用 lambda 的单功能监听器
- python - matplotlib 和 cartopy 的边缘问题
- python - 在 NumPy 数组上调用“np.asarray”是否有很大的开销?
- javascript - 如何从数组中获取随机数而不在Javascript中重复?
- openedge - 如何在 4gl 中添加 html 表格?
- javascript - 多行省略号(clamp)通过多级 html 标签,也适用于 IE、Firefox 等