另一个正则表达式 - 如何识别查询字符串

时间:2012-02-03 17:33:20

标签: regex url-rewriting regex-greedy urlrewriting.net

我正在使用urlrewriting.net进行我的urlrewriting。我需要一些关于正则表达式的帮助(我仍然没有得到....)。

我想匹配

  • www.mysite.com/restaurant - >匹配并返回 “restaurant
  • www.mysite.com/restaurant?page=1 - >匹配和 返回“restaurant
  • www.mysite.com/restaurant?[SOME_RANDOM_QUERYSTRING] - >比赛 并返回“restaurant
  • www.mysite.com/seattle/restaurant - >匹配并返回“seattle”和 “restaurant
  • www.mysite.com/seattle/restaurant?page=1 - >匹配和 返回“seattle”和“restaurant
  • www.mysite.com/seattle/restaurant?[SOME_RANDOM_QUERYSTRING] - >比赛 并返回“seattle”和“restaurant
  • www.mysite.com/seattle/restaurant-michelangelo - >不要抓住
  • www.mysite.com/seattle/restaurant/sushi - >匹配并返回“seattle” 和“restaurant”和“sushi
  • www.mysite.com/seattle/restaurant/sushi?page=1 - >匹配并返回 “seattle”和“restaurant”以及“sushi
  • www.mysite.com/seattle/restaurant/sushi?[SOME_RANDOM_QUERYSTRING] - > 匹配并返回“seattle”和“restaurant”以及“sushi
  • www.mysite.com/seattle/restaurant-michelangelo - >不要抓住

关键是我需要url的目录部分而不是querystring-parts。我可以从我的网络分析工具中看出,人们用两个词搜索。他们都搜索城市(西雅图)+类别(餐厅)例如。 “西雅图餐厅”以及城市(西雅图)+餐厅名称(餐厅 - 米开朗基罗)例如。 “西雅图餐厅 - 米开朗基罗”。从结构的角度来看,这当然是一团糟,因为这不是一个等级。在理想世界中,层次结构将是城市 - >类别 - >餐厅。但我仍然希望在我的url-structure中容纳这种搜索行为。与此同时,我还有一个列出该国所有餐馆的页面。

我想知道如何创建正则表达式以及创建它们的最有效方法,因为我猜它们可能变得相当昂贵。

感谢

托马斯

1 个答案:

答案 0 :(得分:0)

使用它:

/\/[A-Za-z0-9]{1,}(?:\/|$|\?)/

匹配/字母数字1-infininity然后斜线,行尾或问号