1
正则表达式不是我的力量,我希望对此有所帮助,如果它是可能的话:如何编写递归匹配RESTful路径的正则表达式?
我需要创建递归匹配RESTful路径的正则表达式。目的是创建一个与此正则表达式匹配的Symfony路由。这里是什么,我的意思是REST风格的路径的一些例子:
/resources
/resources/123
/resources/123/children-resources
/resources/123/children-resources/123
/resources/123/children-resources/123/grandchildren-resources
等等......
基本上,我想这种模式重演indefinitly一个或多个时间:
^\/[a-z]+(\-[a-z]+)*(\/[0-9]+)?$
请注意,要访问子资源,父资源的标识符必须存在。
我做单元测试的短名单(两个级别的路径才开始)位置: https://regex101.com/r/Hxg0m4/2/tests
我搜索同一主题的问题,但没有一个是我的问题真的很重要。我还尝试了一些修改上面的正则表达式 - 比如在正则表达式的末尾使用+
符号,或者使用(?R)
...它从来没有通过我的单元测试。
任何帮助将很乐意赞赏。
P.S:这是我在stackoverflow上的第一个问题,请不要犹豫,告诉我如何更好地制定我的问题。
惊人!它完成这项工作!我没有想到“或”的条件,显然我得到了错误的逻辑。感谢您的解释,了解它的工作原理非常有帮助。 :) – Boulzy