<p>使用Regex可以很容易地完成,如图所示;<code>eth0.*?</code>指定应该提取膨胀到<strong>eth0</strong>的数据包,<code>RX packets:</code>指定RX数据包后面的数字:</strong>需要提取,<code>(\d)</code>将提取的数字分组。在</p>
<pre><code>>>> import re
>>> a="""eth0 Link encap:Ethernet HWaddr 08:ee:27:ff:b3:d7
... inet addr:10.0.2.45 Bcast:10.3.2.255 Mask:255.255.255.0
... inet6 addr: fe80::a00:27ff:fe00:b3d7/64 Scope:Link
... UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
... RX packets:16178 errors:0 dropped:0 overruns:0 frame:0
... TX packets:8559 errors:0 dropped:0 overruns:0 carrier:0
... collisions:0 txqueuelen:1000
... RX bytes:14045795 (14.0 MB) TX bytes:1355632 (1.3 MB)
...
... lo Link encap:Local Loopback
... inet addr:127.0.0.1 Mask:255.0.0.0
... inet6 addr: ::1/128 Scope:Host
... UP LOOPBACK RUNNING MTU:65536 Metric:1
... RX packets:666 errors:0 dropped:0 overruns:0 frame:0
... TX packets:666 errors:0 dropped:0 overruns:0 carrier:0
... collisions:0 txqueuelen:0
... RX bytes:72748 (72.7 KB) TX bytes:72748 (72.7 KB)"""
>>> re.search(r'eth0.*?RX packets:(\d+)',a,re.DOTALL).group(1)
'16178'
</code></pre>