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

问题描述:

我正在使用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的目录部分,而不是查询字符串部分。问题是,我可以从我的网络分析工具看到,人们用两个词搜索。他们都搜索城市(西雅图)+类别(餐厅),例如。 “西雅图餐厅”以及城市(西雅图)+餐厅名称(餐厅 - 米开朗基罗)等。 “西雅图餐厅 - 米开朗基罗”。从结构的角度来看,这当然是一团糟,因为这不是一个层次结构。在理想的世界里,等级将是城市 - >类别 - >餐厅。但我仍然希望在我的url结构中适应这种搜索行为。同时我也有一个列出该国所有餐馆的网页。

我想就如何创建正则表达式以及创建它们的最有效方式提供帮助,因为我猜它们可能会变得相当昂贵。

感谢

托马斯

+0

你怎么一个区分类别和名称?所有的名字都有破折号或者什么? – user1096188 2012-02-03 17:40:12

使用本:

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

匹配/然后字母,数字1 infininity斜线,线的末端,或者问号

+0

嗯...我无法让它工作。我没有那么多的类别,所以也许我应该做一些类似^〜/(.*)/ restaurant,^〜/(.*)/café等的东西。然后我需要删除任何查询字符串(如果它们存在)。那么不管查询字符串中的参数数量多少,一个正则表达式如何去除查询字符串(如果存在的话)?谢谢 – ThomasD 2012-02-03 23:45:26