我如何简化我的正则表达式(^(\w+)\/(\w+)\/(\d+)$|^(\w+)\/(\w+)\/$|^(\w+)\/(\w+)$)
以匹配类似的示例controller/action(/id)
?我当前的正则表达式看起来很长很复杂:(
匹配示例:
controller/action
controller/action/
controller/action/123
不匹配:
controller/
controller/action/action
controller/action/123/
controller/action/123/456
您可以使用以下带有可选组的正则表达式:
^(\w+)\/(\w+)(?:\/(\d+)?)?$
^^^ ^ ^
此正则表达式匹配:
^
-字符串开头(\w+)
-一个或多个字母数字或下划线字符\/
-一个/
符号(\w+)
-一个或多个字母数字或下划线字符(?:\/(\d+)?)?
-可选(一次或零次出现)序列(由于(?:...)?
构造,非捕获组(?:...)
+一个?
-一个或零个-量词)匹配
\/
-正斜杠(\d+)?
-匹配一个或多个数字的可选捕获组(但是由于将?
量词应用于整个组,所以可能会缺少该组(...)
)$
-弦锚的末端。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句