URL中的chriso / klein正则表达式

时间:2015-06-26 14:44:53

标签: php regex

我试图将正则表达式添加到klein网址,以后可以使用资本或斜杠。

$klein->respond('GET', '@([Hh]ome[\\/]?)', function() {
    return 'Home';
});

然而,这个正则表达式对我来说并不起作用 - 它根本无法识别它。

我也在没有削减的情况下尝试了它,所以它只会识别资本,如下:

'@([Hh]ome)'

基本上我希望它能够做到以下几点:

site.com/home

site.com/home /

site.com/Home

site.com/Home /

1 个答案:

答案 0 :(得分:0)

([Hh]ome[\\/]?)

不是有效的正则表达式。问题是最后的字符类,即[\\/]。斜杠(/)需要被转义,但你不能通过转义反斜杠(转义)字符(\)来做到这一点。您所写的正则表达式无效,我很惊讶它没有抛出错误。 (你确定它不是吗?)

无论如何,你试图说"可选的尾随斜杠,"这可以写成\/?。注意我们如何逃避斜线。如果你想使用一个字符类,你可以把它放在方括号内,如下所示:[\/]

这个正则表达式应该这样做。

[Hh]ome\/?

见这里:https://regex101.com/r/kT2fQ1/1