RegEx:捕获行动参数

时间:2014-09-24 13:25:13

标签: php regex

我正在编写regex来捕获URL REST操作的参数。我写了以下内容:

(?:\/folder)?\/?([a-zA-Z0-9]+)+

它适用于/folder/one/two/three,我得到一个两个三个作为结果。如果我只是尝试/folder//folder,我会得到文件夹,但我不想抓住它。我期待一个空洞的结果。

在这种情况下,我怎能否定这整个词?

3 个答案:

答案 0 :(得分:3)

您需要使用PCRE动词(*SKIP)(*F)

(?:^(?:\/folder\/?)|^.*$)(*SKIP)(*F)|([a-zA-Z0-9]+)

DEMO

答案 1 :(得分:1)

这是因为您正在捕获文件夹

\/folder\/?([a-zA-Z0-9]+)+

答案 2 :(得分:1)

(?:\/folder)?\/?|([a-zA-Z0-9]+)+

试试这个。看看演示。

http://regex101.com/r/zR2tR4/10