2012-05-08 10 views
0

私はまだ正規表現を学んでいます。文字列が含まれている場合は、正規表現の一致を除外します

私は「バルク」が含まれているこれらのようなURLパスに一致するREGのEXPを書きたかった:

/bulk-category_one/ 
/another-category/ 
:のみ取得製品ページではなく、のようなカテゴリページへ

/bulk-category_one/product 
/another-category/bulk-product 

は、だから私は思い付いた:

[/].*(bulk).*[/].+|[/].*[/].*(bulk).* 

しかし、改ページがありますので、私はGoogleのAnalytiでREGのEXPを置くときそれらのすべてが

/_/ 

を持っていると私は

/_/ 

が含まれている任意のURLパスをしたくないと私はできません

/bulk-category/_/showAll/1/ 

:CSは、私のようなものを見つけていますそれらを除外する方法を見つけ出す。

+0

あなたがしようとしているのは、実際にはフィルタリング自体の「第2レベル」です。これを回避するには、パターン内のURL構造を完全に指定します。 –

+0

それであなたは正確に何を探していますか?すべてのセグメントに 'bulk'を含まない絶対パスにマッチする正規表現ですか? – Gumbo

+0

@Karolis D、いくつかの基本的な入力とo/pが期待されます...そして、RegExに問題があるかどうかを確認することができます。私はまだこの '/ bulk-category/_/showAll/1/'RegeExを適用した後、または'/_/'で何も除外したい場合 – swapnilsarwe

答えて

0

私はそれについて、この道を行くだろう:

/[^/\s]*bulk[^/]*/[^/\s]+(?!/)|/[^/\s]+/[^/]*bulk[^/\s]*(?!/) 

最初の部分:

  • / - スラッシュではないすべてのものと一致していない空白
  • - スラッシュ
  • [^/\s]*と一致
  • bulk - 一括一括一致
  • [^/]* - スラッシュ
  • /ではありませんすべてを一致 - 一致スラッシュ
  • [^/\s]+ - スラッシュではないすべてのものと一致していない空白を
  • (?!/) - スラッシュが、その後がないことを確認(すなわち、 URLは2つの部分を持っています)

2番目の部分は同じですが、今回は最初の部分ではなく2番目の部分に「バルク」と表示されます。

あなたが単語「製品」特に、URLの第二部では1つのより多くの選択肢が必要となる必要がある場合:私は、ファイルFILEに、単純な正規表現を適用した場合

/[^/\s]*bulk[^/]*/[^/\s]*product[^/\s]*(?!/)|/[^/\s]+/[^/]*bulk[^/\s]*product[^/\s]*(?!/)|/[^/\s]+/[^/]*product[^/\s]*bulk[^/\s]*(?!/) 
-1

egrep ".*bulk.*product" FILE 
上記の例が含まれている

は、bulkproductの2行にのみ一致します。私たちは、さらに、「/ _ /」除外することができます。

egrep ".*bulk.*product" FILE | egrep -v "/_/" 

二つの呼び出しは、多くの場合、はるかに定義すると理解しやすい、大きな1万能よります。

関連する問題