【发布时间】:2016-05-30 15:53:12
【问题描述】:
我有一个 Slug aktuell/blog/cat1/cat2/cat3 并且需要一个正则表达式来从这个 Slug 中提取所有类别段('aktuell/blog' 之后的所有段)。
category-segments 的计数可能从零变化到无穷大。
我已经尝试了几种方法,但都无法按预期工作... 我的最后一次尝试是:
^aktuell\\/blog(?:\\/(\w+))*$/g
但是这个正则表达式只返回最后一段作为匹配... 我该怎么做才能获得所有类别?
谢谢
【问题讨论】:
-
您是将段作为
$_GET变量传递给PHP,还是URL 仅作为字符串提供?如果您作为变量传递,请循环通过$_GET来检索值。如果没有,那么用分隔符“/”分解你拥有的字符串并找到你想要的段! -
URL 只能作为字符串使用。我有一个路由类,它处理正则表达式模式(来自 db)并向我返回路由 ID 和所有匹配项。所以我不能使用explode ... :(
-
为什么不使用这种模式:
aktuell\/blog\/(.*)并在"/"上爆炸? -
纯正则表达式:
/(?:^aktuell\/blog|\G(?!^))(?:\/(\w+))/g -
@SebastianProske:我认为你应该发布一个答案。