python 正则表达式匹配每行打印的第一个字符串?

gzszwxb4  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(150)

我正尝试在路由器的show interface命令中使用regex解析show命令。
输出将类似于以下内容:
以太网0/010.10.10.103是DHCP启动启动
GigabitEthernet 0/1未分配是手动管理性关闭关闭
Ethernet 0/2未分配是手动管理性关闭关闭
Ethernet 0/3未分配是手动管理性关闭关闭
如何在没有任何其他数据的情况下获取接口描述符(即GigabitEthernet 0/1)?
是否有办法获取每行的第一个字符串,直到第一个空格(““)?这些输出将有100个或更多的接口,有许多字母和数字的组合。因此,如果我能用Regex找到一个解决方案,这将有所帮助。
我在python中尝试过-接口模式= re.findall(r '\w+\w|\w**\w +',输出)
在python中,但未返回任何内容

tsm1rwdh

tsm1rwdh1#

我们可以在多行模式下使用re.findall,如下所示:

inp = """Ethernet0/0 10.10.10.103 YES DHCP up up
GigabitEthernet0/1 unassigned YES manual administratively down down
Ethernet0/2 unassigned YES manual administratively down down
Ethernet0/3 unassigned YES manual administratively down down"""

matches = re.findall(r'^\S+', inp, flags=re.M)
print(matches)

# ['Ethernet0/0', 'GigabitEthernet0/1', 'Ethernet0/2', 'Ethernet0/3']

相关问题