我有一个我要解析的xml,继承人就是一个例子:
<server name="thisServer" dns="...".....>
...
<path>firstPath</path>
<path>secondPath</path>
<path>thirdPath</path>
...
</server>
现在结果应该是:
上面的伪代码示例:
GrpNo。 |值
1 | THISSERVER
2 | firstPath
3 | secondPath
4 | thirdPath
这种模式让我最后出现了:
<server name="(.*?)".\b[^>]*>.*<path>(.*?)</path>.*</server>
我使用
获取所有路径<server name="(.*?)".\b[^>]*>.*<path>(.*?)</path>.*<path>(.*?)</path>.*<path>(.*?)</path>.*</server>
但这不应该是它的工作方式,因为我不知道可能有多少路径......
我对这个RegEx Stuff很陌生,我无法使用搜索找到任何类似的问题。
我希望有人可以帮助我:)
答案 0 :(得分:0)
<server[^"]+"([^"]+)|<path>([^<]+)
试试这个。看看演示。
http://regex101.com/r/oE6jJ1/49
import re
p = re.compile(ur'<server[^"]+"([^"]+)|<path>([^<]+)', re.IGNORECASE | re.MULTILINE)
test_str = u"<server name=\"thisServer\" dns=\"...\".....>\n...\n<path>firstPath</path>\n<path>secondPath</path>\n<path>thirdPath</path>\n...\n</server>"
re.findall(p, test_str)