说我要求
parent/child/child/page-name
在我的浏览器中。我想提取父、子以及页面名称。这是我目前使用的正则表达式。url 请求中有多少个孩子应该没有限制。目前,页面名称将始终位于末尾,永远不会被省略。
^([\w-]{1,}){1} -> Match parent (returns 'parent')
(/(?:(?!/).)*[a-z]){1,}/ -> Match children (returns /child/child/)
[\w-]{1,}(?!.*[\w-]{1,}) -> Match page name (returns 'page-name')
我玩得越多,我就越觉得这个解决方案有多笨拙。这是我在 ASP Classic (:() 中开发的一个小型 CMS。它有点像 MVC 路由路径。但不是基于 URL 请求调用控制器和函数。我会沿着层次结构向下移动并找到数据库中的适当页面。数据库使用嵌套集模型,并通过每个子页面的唯一页面名称链接。
我曾尝试使用 split 函数使用 / 分隔符进行拆分,但是我发现我将这么多拆分语句嵌套在一起,变得非常不可读。
总而言之,我需要一种有效的方法来从字符串中解析出父级、子级以及页面名称。有人可以提供替代解决方案吗?
老实说,我什至不确定正则表达式是否是解决我问题的最佳方法。
谢谢你。