2017-05-18 7 views
0

私はpythonの新しい仲間です。独自のpythonタスクを開始して、z/OSによって生成されたレポートからプログラム名を特定しました(私にtxtファイルとして送られました)。サンプルデータがPythom3 regex query

<*** MEMBER AA2500 ***> 
<*** MEMBER AA2600 ***> 
<*** MEMBER AA3A60 ***> 
<*** MEMBER AA3A50 ***> 

、次のようになります私はこれをidenify、最終的に別のテキストファイルに書かために、

pgmName = re.findall(r'[<][*]*\s[A-Z]*\s[A-Z]*\d[0-9](?:[A-Z]|[0-9])\d[0-9]*\s[*]*[>]', inputString) 

を正規表現パターンを試してみました。 しかし、問題は、このパターンを使用して3番目と4番目のメンバーが特定されていないことです。

誰かが私にこの問題を解決してもらえますか? ありがとうございます。

+0

...データに依存します。ただし、次のパターンは、あなたのケースのために働きますクエリが更新されました... –

答えて

0

ファイルから他の文字列が表示されない場合は、必要なものを推測するのは難しいです。あなたはいくつかの文字

MATCH = re.compile(r''' 
^\<\*{3} # opening tag 
\sMEMBER # MEMBER 
\s[A-Z]{2}\d[A-Z,0-9]\d{2} # ID 
\s\*{3}\>$ # closing tag 
''', re.X) 

の数を指定するには、より具体的な可能性があり

MATCH = re.compile(r''' 
^\<\** # opening tag 
\s[A-Z]* # MEMBER 
\s[A-Z,0-9]* # ID 
\s\**\>$ # closing tag 
''', re.X) 

pgmName = MATCH.findall(inputString) 

しかし、それは主に