匹配单个字符而不关闭字符串

时间:2016-10-31 11:48:09

标签: regex .htaccess pcre

我试图在我的.htaccess文件中使用PCRE正则表达式匹配一些URL模式。这是我现在的正则表达式:

investor-advice/glossary/(?:[a-z]|all)(/P[0-9]+)?

我想将[a-z]个字符限制为一个字符,我尝试过很多方法让这项工作失败。

唯一可行的方法就是在[a-z]之后关闭字符串,如下所示:

investor-advice/glossary/(?:[a-z]$|all)(/P[0-9]+)?

但是,此时关闭字符串意味着我无法匹配后面的(/P[0-9]+)段。还有另一种方法可以达到这个目的吗?

我也试过[a-z]{1}无济于事。

1 个答案:

答案 0 :(得分:0)

您可以使用

investor-advice/glossary/(?:all|[a-z])(/P[0-9]+)?$

主要观点是字符串锚点$的末尾移动到模式的末尾,只允许investor-advice/glossary/allinvestor-advice/glossary/all/P12investor-advice/glossary/d或{ {1}}。