我目前正在重写URL,但是我的RegEx表达式正在捕获我想要忽略的目录。
重写规则是
^people/([A-Za-z0-9\-\_]+)/?$
...哪个能抓到匹配的东西。但是,我想排除目录People_Search,例如......
/people/John_Smith
...会转发,但
/people/People_Search
......不应该假设是。
这是我想要查找的唯一术语,所以如果它存在于字符串中的任何位置,我想忽略它。
有什么想法吗?
答案 0 :(得分:7)
正则表达式有一种称为“非捕获否定前瞻断言”的东西,它基本上表示“与下列内容不匹配”。它看起来像这样:
^people/(?!People_Search)([A-Za-z0-9\-\_]+)/?$
是否可以使用此取决于您使用的重写引擎,以及其中包含的正则表达式支持的级别。我希望大多数常见的重写器都支持这一点。
仅供参考:还存在负面的后观断言(?<!),以及前瞻(?=)和后观(?< =)断言的正面版本。
答案 1 :(得分:1)
^people/(?!People_Search)([A-Za-z0-9\-\_]+)/?$
在People_Search
people/
的否定前瞻