0

我似乎对正则表达式没有任何运气!我编写了一个 Wordpress 插件,它(理论上)从 url 中获取类别和可选页码,但我无法让它与 url 模式匹配。

网址的格式为:

Bikes/Hybrid-Bikes

Bikes/Hybrid-Bikes/1

Bikes/Hybrid-Bikes/2

ETC

和:

Bikes/Mountain-Bikes

Bikes/Mountain-Bikes/1

Bikes/Mountain-Bikes/2

等等。

这是我正在尝试使用的正则表达式:

   Bikes/([^/]+)(?:/(\d+))?

它与类别匹配,但与页码不匹配。我确定我已经完成了 99% 的工作,但我就是想不通!

提前致谢

菲尔

4

3 回答 3

0

试试这个正则表达式来匹配你的页码:

Bikes/([^/]+)?/?(\d+)?

您可以在http://regexpal.com上验证 RegExps - 我的测试数据是:

自行车/

自行车/混合动力自行车

自行车/混合动力自行车/1

自行车/混合动力自行车/2

于 2012-09-16T07:34:57.690 回答
0

你确实很亲近。

添加开始和结束 ( ^$) 标记以完成表达式:

^Bikes/([^/]+)(?:/(\d+))?$

PHP 工作示例:

$string = "Bikes/Hybrid-Bikes/1";

var_dump(
    preg_match(
        "~^Bikes/([^/]+)(?:/(\d+))?$~i",
        $string
    )
);
于 2012-09-16T07:38:30.793 回答
0
^\w+\/\w+-?\w+\/?\d?$

已在 robular 中测试

于 2012-09-16T09:08:45.547 回答