0

urlrewriting に urlrewriting.net を使用しています。正規表現について助けが必要です(まだ得られません....)。

合わせたい

  • 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/sushiseattle-> " " と " restaurant" と " "sushiを照合して返す
  • www.mysite.com/seattle/restaurant/sushi?page=1seattle-> " " と " restaurant" と " "sushiを照合して返す
  • www.mysite.com/seattle/restaurant/sushi?[SOME_RANDOM_QUERYSTRING]seattle-> " " と " restaurant" と " "sushiを照合して返す
  • www.mysite.com/seattle/restaurant-michelangelo→捕まえない

ポイントは、クエリ文字列部分ではなく、URL のディレクトリ部分が必要なことです。問題は、私の Web 分析ツールから、人々が 2 つの単語で検索していることがわかります。どちらも都市 (シアトル) + カテゴリ (レストラン) を検索します。「シアトル レストラン」と都市 (シアトル) + レストランの名前 (restaurant-michelangelo) など。「シアトルレストラン・ミケランジェロ」。これは階層構造ではないため、構造的な観点から見ると、これはもちろんごちゃごちゃです。理想的な世界では、階層は都市 -> カテゴリ -> レストランです。しかし、私はまだこの検索動作を私の URL 構造に取り入れたいと思っています。同時に、国内のすべてのレストランをリストしたページもあります。

正規表現は非常に高価になる可能性があるため、正規表現の作成方法と最も効率的な作成方法について助けてください。

ありがとう

トーマス

4

1 に答える 1

0

これを使って:

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

一致 / 英数字 1 から無限大の後にスラッシュ、行末、または疑問符

于 2012-02-03T17:41:36.220 に答える