0

次のことを実現するための組み込みのPythonプロトタイプはありますか?誰かが次の方法を提案できますか?

ブロックとの間で始まる行に[ ]基づいて、すべてのデータを取得して分割しようとしています。\s+||-|-}

   {| border="1" cellspacing="1" cellpadding="1"
    |-
    Ignore block
    |-
    | [http://data/code SEC.12.0]
    | [file://data\\loc \\DATA\LOC]<br>
    |
    [file://\\ftp\\location \\ftp\\location] <br> <br> &

    |-
    | [http://data/code2 SEC.13.0]
    | [file://data\\loc2 \\DATA\LOC2]<br>]
    |
    [file://\\ftp\\location2 \\ftp\\location2] <br> <br> &
    |
    }

期待される出力:-

SEC.12.0
\\DATA\LOC
\\ftp\\location


SEC.13.0
\\DATA\LOC2
\\ftp\\location2
4

1 に答える 1

1

例えば:

import re

data = []

for block in re.findall(r'(?s)\|-(.+?)(?=\|-|})', text):
    r = [x.split()[-1] for x in re.findall(r'\[(.+?)\]', block)]
    if r:
        data.append(r)

print data

結果:

[['SEC.12.0', '\\DATA\\LOC', '\\ftp\\location'], ['SEC.13.0', '\\DATA\\LOC2', '\\ftp\\location2']]
于 2013-03-24T23:21:52.647 に答える