擅长:python、mysql、java
<p>首先,使用XML解析器而不是正则表达式。从长远来看你会更快乐。在</p>
<p>第二,如果您坚持使用regex,请使用<code>finditer()</code>,而不是{<cd2>}。在</p>
<p>第三,您的regex匹配从第一个条目到最后一个条目(<code>.*</code>是贪婪的,并且您已经设置了<code>DOTALL</code>模式),所以要么查看第一段,要么至少将正则表达式更改为</p>
<pre><code>pattern = r'<device id="(.*?)".*?actual_device_root="true">.*?<capability name="resolution_width" value="(\d+)"/>.*?<capability name="resolution_height" value="(\d+)"/>.*?</device>'
</code></pre>
<p>此外,请始终将原始字符串与正则表达式一起使用。<code>\d</code>碰巧起作用,<code>\b</code>在“普通”字符串中会有意外的行为。在</p>