【问题标题】:Matching parts of URIs with Regular Expressions使用正则表达式匹配部分 URI
【发布时间】:2009-03-20 21:47:08
【问题描述】:

我想将此 url /Real_estate_Listing_Detail.asp?PropID=245 与除了 PropID 编号的能力相匹配...

换句话说,

在此处匹配 /Real_estate_Listing_Detail.asp?PropID=ANY NUMBER,除了 286,289,290,180

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

这是一个wordpress插件,所以需要单行表达式。

【问题讨论】:

  • 你需要这个是什么语言的?
  • 添加了 PHP 标记,因为您说您使用的是 Wordpress。

标签: php regex uri


【解决方案1】:

如果你使用的语言支持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)$

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

【讨论】:

  • 在第一种情况下,将无法匹配“...PropID=3180”或“...PropID=51289”等。
  • 问题是我使用的是wordpress插件,只能使用单行表达式...有什么帮助吗?
  • PCRE(由 PHP 使用)支持环视断言。所以你可以使用以前的正则表达式之一。
猜你喜欢
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 2015-04-12
  • 2017-11-29
  • 2017-06-23
相关资源
最近更新 更多