解析块“| - ”和“| - 或}”中的文本

时间:2013-03-24 21:48:32

标签: python

是否有任何内置的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

1 个答案:

答案 0 :(得分: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']]