Python正则表达式查找xml数据的位置

Python正则表达式查找xml数据的位置,python,regex,xml,Python,Regex,Xml,我想用python正则表达式或使用任何其他方法提取XML数据的位置,数据部分可以是数字、单词、ip或任何标记 PUT /mg/co.xml HTTP/1.1 Host: 19.16.7.59 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gehko/20100101 Firefox/31.0 <?xml version="1.0" encoding="UTF-8"?> <!-- THIS DATA S

我想用python正则表达式或使用任何其他方法提取XML数据的位置,数据部分可以是数字、单词、ip或任何标记

PUT /mg/co.xml HTTP/1.1
Host: 19.16.7.59
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gehko/20100101 Firefox/31.0

<?xml version="1.0" encoding="UTF-8"?>
<!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. -->
<io:zzzz xmlns:io="http://kfj/ledm/iomgmt/2008/11/30" xmlns:dd="http://jkfhkj/dictionaries/1.0/" xmlns:dd3="http://jfja/dictionaries/2009/04/06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jcjhjk/ledm/iomgmt/2008/11/30 ../../schemas/gfjbj.xsd">
    <io:aaaa>
        <dd3:bbbb>hjgjg</dd3:bbbb>
    </io:aaaa>
    <io:ccccc>
        <io:dddd>
            <dd3:ffff>15.34.2.5</dd3:ffff>
        </io:dddd>
        <io:eeee>
            <dd3:gggg>67</dd3:gggg>
        </io:eeee>
        <io:iiii>
            <dd3:jjjj><script>jgfjkgkj</script></dd3:jjjj>
        </io:iiii>
    </io:cccc>
</io:zzzz>
预期产出:


有人能帮我整理一下吗?

你不应该用python re解析xml,因为它随时都可能失败。Regex太蹩脚了,无法理解xml的细节。不过,如果你没有其他选择,试试这个

^(?=\s*<dd3:[^>]*>).*?>([^< ]+)<
见演示


使用正则表达式有什么理由吗?您可以更好地使用其他xml解析器工具。看在上帝的份上,请不要再问关于使用正则表达式解析xml/html的问题了…相关:不,不要用正则表达式解析xml。为什么您需要数据的位置,而不是数据本身??不能用大小相同的其他字符串替换XML文件中的数据:XML是一种文本格式-如果需要替换部分数据,必须重写该文件。如果你需要位置来获取数据,你最好直接获取数据,不是吗?不,事实上,xml解析器不会泄露位置,但您不太可能需要这样做。
^(?=\s*<dd3:[^>]*>).*?>([^< ]+)<
import re
p = re.compile(r'^(?=\s*<dd3:[^>]*>).*?>([^< ]+)<', re.MULTILINE)
test_str = "PUT /mg/co.xml HTTP/1.1\nHost: 19.16.7.59\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gehko/20100101 Firefox/31.0\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. -->\n<io:zzzz xmlns:io=\"http://kfj/ledm/iomgmt/2008/11/30\" xmlns:dd=\"http://jkfhkj/dictionaries/1.0/\" xmlns:dd3=\"http://jfja/dictionaries/2009/04/06\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://jcjhjk/ledm/iomgmt/2008/11/30 ../../schemas/gfjbj.xsd\">\n <io:aaaa>\n <dd3:bbbb>hjgjg</dd3:bbbb>\n </io:aaaa>\n <io:ccccc>\n <io:dddd>\n <dd3:ffff>15.34.2.5</dd3:ffff>\n </io:dddd>\n <io:eeee>\n <dd3:gggg>67</dd3:gggg>\n </io:eeee>\n <io:iiii>\n <dd3:jjjj><script>jgfjkgkj</script></dd3:jjjj>\n </io:iiii>\n </io:cccc>\n</io:zzzz>"

re.findall(p, test_str)