私は、文字列strlst
と正規表現rexlst
のリストのリストを持っている場合は、rexlst
試合での正規表現のどのなしためstrlst
のすべての要素をフィルタリングするための最も神託の方法は何ですか?したがって、rexlst
の通常のエフェクトの1つがstrlst
の文字列と一致するとすぐに、この特定の文字列を出力リストに含める必要があります。 追加された合併症*は、strlst
の最初のの要素がrexlstの最初の正規表現と一致すると一致し、次に2番目とs.o.正規表現のリストで正規表現のリストを文字列のリストにフィルタリングする最も無作法な方法は何ですか?
A非常に簡単な例:これは、strlst
とreglist
いずれかの任意の組み合わせの原因作業べき
outlst = ['aaaaaa', 'bbbbb', '1234']
:
import re
strlst = ['aaaaaa', '1234', 'bbbbb', '------', '.+/4-3', 'a1b2c3']
rexlst = [re.compile(x) for x in [r'^[a-z]+$', r'^\d+$']]
募集結果はoutputlistあります。プラスは合理的に効率的で短期間のソリューションです。
outlist = filter(lambda x: any([True if r.match(x) else False for r in rexlst]), strlst)
しかし、それは、間違った順序、彼らはstrlst
に表示される、すなわち、それは文字列の順序を保持できます::
私が思い付くことができる最高です
outlst = ['aaaaaa', '1234', 'bbbbb']