2012-02-08 10 views
-1

URLを受け入れるか破棄するかに基づいて、指定されたURLとフィルタ条件のセットを照合しようとしています。ここではサンプルパターンjavaでのワイルドカードとの照合方法


http://test.blogs.com/between_the/ 
http://test.blogs.com/between_the/page* 
http://test.blogs.com/between_the/archives* 
*index.html* 
*/page/* 
http://abc.blogs.com/ 
http://area.test.com/index.php/blogs_a/blog_list/ 
http://area.test.com/index.php/blogs_b/blog_list/*/ 

が条件に基づいている以下のものがジャストための最良のアプローチだかと思っ


http://test.blogs.com/between_the/page/2 
http://test.blogs.com/index.html 
http://area.test.com/index.php/blogs_b/blog_list/1/ 

をフィルタリングされますが、以下のURLは


http://test.blogs.com/between_the/2012/02/autocad-ws-update-coming.html 
http://abc.blogs.com/test 
http://area.test.com/index.php/blogs_b/blog_list/page/2 

を受け付けますこの ?除外パターンが予測できないため、複雑な汎用正規表現を使用してこれを処理できるかどうかはわかりません。私はワイルドカードを削除し、正確な一致のための2つの別々のリストを作成し、一致を含んでいると考えていました。そして、入力urlを2つのリストに対して反復させます。

何か指摘します。

おかげ

答えて

1

あなたは、単に正規表現のリストを作成し、それが正規表現のいずれかに一致しない場合、URLを受け入れることができます。 URLは正規表現にマッチするとすぐに破棄されます。これは、単一の複雑な正規表現を作成するよりはるかに簡単でメンテナンスが容易なはずです。

+0

入力いただきありがとうございます。確かに対処する方法ですが、パターンの数が膨大になる可能性があるので、避けようとしていました。それぞれの正規表現パターンを作成することになります。さらに、このリストは成長するだろう。たぶん、私の正規表現の経験の私の不足のため、私は正規表現以外の対処するための一般的な正規表現のパターンまたは他の方法を模索するために探していた。あなたの提案をありがとう。 – Shamik

+0

@Shamikもっと洗練されたソリューションをお探しの場合、プレフィックス/接尾辞パターンの階層を作ることができます。ドメインは第1レベルにあり、サブディレクトリはより低いレベルにある。そうすれば、増加するパターンの数を管理しても、比較的効率的なマッチングプロセスが得られます。 – shams

関連する問題