2016-06-14 9 views
-3

アスタリスク(*)とパイプ(|)を持つファイルを扱っています。Python正規表現による繰り返しの組み合わせのチェック

少なくとも4つのパイプとその間にアスタリスクがいくつある組み合わせにもマッチする正規表現が欲しいです。少なくとも4つのパイプがあれば、任意の数のパイプを一致させる必要があります。

これらはファイルから削除する必要があります。

例:

マッチ:

||||||||||||||| 

    |***|*||******| 

    |||*****************| 

が一致しない:

||| 

    |?|*|*| 

    |||?| 
+0

あなたはここにあなたの正規表現をテストすることができます:http://regexr.com/を。便利な正規表現チートシートもあります。 – Danibix

答えて

0

説明

(?:[*]*[|]){4,} 

Regular expression visualization

は、この正規表現は、次の操作を行います:

  • *|文字
  • を作っている部分文字列を検索するには、少なくとも4つの|文字
  • を含むように部分文字列を必要部分文字列を持つことができます*文字の任意の数

ライブデモ

https://regex101.com/r/mJ4nY4/2

サンプルテキスト

||||||||||||||| 
|***|*||******| 
|||*****************| 
||| 
|?|*|*| 
|||?| 

サンプル

||||||||||||||| 
|***|*||******| 
|||*****************| 
0にマッチします

説明

NODE      EXPLANATION 
---------------------------------------------------------------------- 
    (?:      group, but do not capture (at least 4 
          times (matching the most amount 
          possible)): 
---------------------------------------------------------------------- 
    [*]*      any character of: '*' (0 or more times 
          (matching the most amount possible)) 
---------------------------------------------------------------------- 
    [|]      any character of: '|' 
---------------------------------------------------------------------- 
){4,}     end of grouping 
---------------------------------------------------------------------- 

代替

あなたはキャプチャしたくない場合は、文字列*|||**|のように*をリードすることは、あなたは、この表現を使うことができ

[|](?:[*]*[|]){3,} 

Regular expression visualization

ライブデモ

https://regex101.com/r/yN6wK2/1

関連する問題