我从cisco交换机命令中得到一个字符串:
interface FastEthernet2/0/45
switchport access vlan 703
switchport mode access
interface FastEthernet2/0/46
switchport access vlan 703
switchport mode access
interface FastEthernet2/0/47
switchport access vlan 703
switchport mode access
interface FastEthernet2/0/48
switchport access vlan 311
switchport mode access
interface GigabitEthernet2/0/1
interface GigabitEthernet2/0/2
interface GigabitEthernet2/0/3
interface GigabitEthernet2/0/4
我想用pyhon re按每个接口切割它们,比如:
^{pr2}$我记得可以通过非贪心来捕捉“接口”作为每个模式的停止点。不幸的是,这个regex:“(interface.*?)”只获取每个“接口”,但端口号和详细信息。我可以找到一个明显的结束字符,让re得到“interface”和后面的字符串。在
也许这很简单,但我完全明白了。。。在
Python不允许使用空匹配进行拆分,因此必须编写一个正则表达式来匹配每个接口的所有行。在
正则表达式从以
^interface.*
开头的行开始匹配,然后匹配新行字符,如果下一行的开头有一个或多个空格[\t ]+
,则继续匹配。在Demo on regex101
注意
\n
是如何在重复开始时包含的。如果输入不以新行结束,则此构造允许正则表达式匹配最后一条记录。在只需根据
interface
之前存在的换行符进行拆分示例:
^{pr2}$相关问题 更多 >
编程相关推荐