用于匹配特定表达式的RegEX
本文关键字:表达式 RegEX 用于 | 更新日期: 2023-09-27 18:27:52
我想使用Regex检查而不是
if( actionContext.Request.RequestUri.AbsolutePath == "/api/v1/token")
使用类似的东西
Regex rgx = new Regex(@"/api/v1/token");
并且不仅匹配v1,还匹配v2、v3、v4等等…
if(rgx. actionContext.Request.RequestUri.AbsolutePath.isMatch){
//then do further actions
}
Regex rgx = new Regex("^'/api'/v[1234]'/token$");
if(rgx.IsMatch(actionContext.Request.RequestUri.AbsolutePath)){
//then do further actions
}
这应该可以工作。它将匹配每个版本号,并且至少需要一个编号。
Regex rgx = new Regex(@"^/api/v[0-9]+?/token$");
/api/v1/token => ok
/api/v2560/token => ok
/api/v/token => ko
你可以检查更复杂的正则表达式并在这里测试
更新
为了消除评论中询问的类似v0的操作,请参阅标记的答案edit02。
我相信这就是您问题的解决方案。
Regex rgx = new Regex(@"/api/v[0-9][0-9]*/token")
请注意,由于您没有指定是否只需要v1、v2、v3和v4或任何编号后缀,我假设是后者。
编辑01:正如一位好心的朋友指出的那样,这也可以通过使用这个来实现,我想这是更好的方法
Regex rgx = new Regex(@"/api/v[0-9]+?/token")
编辑02:这将按照询问问题的人最初的要求消除v0
Regex rgx = new Regex(@"/api/v[1-9][0-9]*/token")