使用正则表达式匹配URI的部分

时间:2009-03-20 21:47:08

标签: php regex uri

我希望将此网址/Real_estate_Listing_Detail.asp?PropID=245与除了支持号码的能力相匹配...

换句话说,

匹配/Real_estate_Listing_Detail.asp?PropID=ANY号码,除了,286,289,290,180

提前谢谢......这不应该像我做的那么难......

这是一个wordpress插件,因此需要一行代码。

1 个答案:

答案 0 :(得分:2)

如果您使用的语言支持look-around assertions,则可以使用:

^/Real_estate_Listing_Detail\.asp\?PropID=(?!(?:286|289|290|180)$)\d+$
^/Real_estate_Listing_Detail\.asp\?PropID=\d+(?<!=(?:286|289|290|180))$

第一个是先行断言,第二个是后视断言。

否则使用两个表达式:一个用于匹配模式,另一个用于排除特定值:

^/Real_estate_Listing_Detail\.asp\?PropID=\d+$
^/Real_estate_Listing_Detail\.asp\?PropID=(286|289|290|180)$

所以第一个表达式必须匹配,而第二个表达式必须匹配。