gpt4 book ai didi

asp.net - 用于多种语言的 ASP.NET 路由的正则表达式

转载 作者:行者123 更新时间:2023-12-02 14:21:04 24 4
gpt4 key购买 nike

我需要编写正则表达式,将其用于 asp.net 路由约束,该约束应匹配任何单词。问题是单词可以用任何语言书写,例如

  1. 测试
  2. 其他测试
  3. 另一个-трудно-получить-结果

感谢帮助。

最佳答案

如果我理解正确的话,您想要匹配一个包含单词的网址并将其传递给您的路线,但该单词可能有多种语言。

默认情况下,Asp.net MVC 路由适用于任何语言。例如这样的路线:

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" }
);

将匹配类似“/controller/action/one-more-трудно-получить-result”的网址。 ID 参数将保存值“one-more-трудно-получить-result”。

如果您希望限制路线,使其仅匹配任何语言的单词(无数字),那么这是您的正则表达式:

[\p{L}\p{M}-]+

以下是您的路由方式:

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "default" },
new { id = @"[\p{L}\p{M}-]+" }
);

\p{L} 将匹配任何语言的任何类型的字母。\p{M} 将匹配任何要与另一个字符组合的字符(例如重音符号、变音符号、封闭框等)。此路由将匹配类似“/controller/action/one-more-трудно-получить-result”的 url,但不匹配“/controller/action/one-more-трудно-по12341лучить-result”。

仅供引用,\p{N} 用于匹配任何数字,\p{P} 用于匹配标点符号,\p{C} 用于匹配不可见的控制字符和未使用的代码点。

资源: http://www.regular-expressions.info/unicode.html

关于asp.net - 用于多种语言的 ASP.NET 路由的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7125177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com