2016-08-08 15 views
1

リストがあり、リストの各要素を正規表現のリストと比較して、regex.Regexが見つからないものだけを設定ファイルから出力したい:Python:正規表現の要素がリストと一致する

exclude_reg_list= qa*,bar.*,qu*x

コード:

import re 
read_config1 = open("config.ini", "r") 
for line1 in read_config1: 
    if re.match("exclude_reg_list", line1): 
     exc_reg_list = re.split("= |,", line1) 
     l = exc_reg_list.pop(0) 
     for item in exc_reg_list: 
      print item 

は、私は一つ一つregexsを印刷するが、どのようにリストに対してregexsを比較することができるしています。代わりにモジュール再を使用しての

+0

これは正規表現パターンではなく、ワイルドカードパターンと思われます。 –

答えて

1

、私はそれがワイルドカードパターンマッチングのように見えるので、のfnmatchモジュールを使用するつもりです。

fnmatchの詳細については、このリンクをご確認ください。

import fnmatch 
exc_reg_list = [] 

#List of words for checking 
check_word_list = ["qart","bar.txt","quit","quest","qudx"] 

read_config1 = open("config.ini", "r") 
for line1 in read_config1: 
    if re.match("exclude_reg_list", line1): 
     exc_reg_list = re.split("= |,", line1) 

     #exclude_reg_list= qa*,bar.*,qu*x 
     for word in check_word_list: 
      found = 0 
      for regex in exc_reg_list: 
       if fnmatch.fnmatch(word,regex): 
        found = 1 
      if found == 0: 
        print word 

出力:所望の出力のためにあなたのコードを拡張

C:\Users>python main.py 
quit 
quest 

を、それが役に立つ場合は私に知らせてください。

+1

ありがとう、期待どおりに動作します。 – cloudvar

関連する問題