のために、私は設定ファイルを検索し、次のように別のリストからすべての文字列の一致が見つかったスクリプトがあります。正規表現は、リストの要素の上にループ
dstn_dir = "C:/xxxxxx/foobar"
dst_list =[]
files = [fn for fn in os.listdir(dstn_dir)if fn.endswith('txt')]
dst_list = []
for file in files:
parse = CiscoConfParse(dstn_dir+'/'+file)
for sfarm in search_str:
int_objs = parse.find_all_children(sfarm)
if len(int_objs) > 0:
dst_list.append(["\n","#" *40,file + " " + sfarm,"#" *40])
dst_list.append(int_objs)
私はこのコードの一部を変更する必要があります。
をfor sfarm in search_str:
int_objs = parse.find_all_children(sfarm)
search_str
は、['xrout:55','old:23']
など多くの文字列を含むリストです。
したがって、リストからの文字列で終わるエントリは、sfarm
で繰り返されます。私が理解するには、re
を使用してsfarm$
のようなものにマッチさせる必要がありますが、ループの一部としてこれを行う方法はわかりません。
sfarm
は繰り返し可能ですか?もしそうなら、私はこのコンテキストで反復可能なオブジェクトを正規表現する方法を知る必要があります。
あなたはsearch_str' 'の定義を含めるのを忘れて、それは' sfarm'が何であるかを言うのは難しいです。言い換えれば、[最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を参照してください。 –
'search_str'は反復可能で、' sfarm'は正規表現を使うことができるあなたのリストの普通の要素です( – Julien
)。IIja Everilaと私はsearch_strがどのように埋め込まれるのか知りたいですか?さらに、search_strとなるサンプルデータを追加できると良いでしょう。 –