我正在尝试从多行字符串中提取以下行:
fixed height
当我尝试仅提取eth6.36 Link encap:Ethernet HWaddr A0:36:9F:5F:24:EE \r\n inet addr:36.36.36.10 Bcast:36.36.36.255 Mask:255.255.255.0\r\n inet6 addr: fe80::a236:9fff:fe5f:24ee/64
时,我收到错误。
eth6.36 Link encap
有什么想法吗?
答案 0 :(得分:1)
re.match
匹配字符串的开头。请使用re.search
,因为它匹配字符串中的任何位置:
>>> match = re.search('(eth6.36\s+Link encap:)', test)
>>> print match.groups()
('eth6.36 Link encap:',)
此外,您必须指定多个空格字符匹配:\s+
(注意+)。
答案 1 :(得分:1)
你想要这个,正则表达式的形成存在错误
import re
test = 'ifconfig eth6.36\r\neth6.36 Link encap:Ethernet HWaddr A0:36:9F:5F:24:EE \r\n inet addr:36.36.36.10 Bcast:36.36.36.255 Mask:255.255.255.0\r\n inet6 addr: fe80::a236:9fff:fe5f:24ee/64 Scope:Link\r\n UP BROADCAST MULTICAST MTU:9000 Metric:1\r\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:62 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:0 \r\n RX bytes:0 (0.0 b) TX bytes:7004 (6.8 KiB)\r\n\r\n'
match = re.search('(eth6\.36\s*Link encap:)', test)
print match.groups()
输出
('eth6.36 Link encap:',)
答案 2 :(得分:0)