C#Regex可选url参数

时间:2019-01-25 15:35:43

标签: c# regex

我需要构建一个REGEX,它将验证可选的仅数字URL参数

匹配项:/user/123 /user/ /user

没有匹配项:/user/test /user/123.3

我想到的最好的是

^\user\b(\/)?(0|[1-9]\d*)?$

但是首先失败的是没有匹配测试。

1 个答案:

答案 0 :(得分:0)

在您的正则表达式中,反斜杠应成为正斜杠。如果您使用与\b匹配的1个可选组,后跟1+个数字或单个/,则可以省略边界/

(?:0|[1-9]\d*将匹配单个零或从1开始匹配。如果要匹配1个以上的数字,可以使用\d+

例如使用交替:

^/user(?:/\d+|/)?$

Regex demo

说明

  • ^字符串的开头
  • /user
  • (?:/\d+|/)?可选的非捕获组,以匹配/和1+个数字或/
  • $字符串的结尾

或者regex包括数字的模式:

^/user(?:/(?:0|[1-9]\d*)|/)?$