说我请求
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函数用/分隔符进行拆分,但是我发现我在一起嵌套了太多的split语句,因此无法读取。
总之,我需要一种有效的方法来从字符串中解析出父级、子级以及页名。有人能提供另一种解决方案吗?
老实说,我甚至不确定正则表达式是否是解决我问题的最佳方案。
谢谢您。