一段时间以来,我一直在这里寻找解决方案,并尝试了几种与我的问题类似的解决方案,但没有成功。
我有一个交换机端口列表,它们的格式都如下:
SWITCHKANSASAS01WAN1008
1008
,其中1
是堆栈号,0
是插槽,08
是端口。
我希望达到的最终结果是:
SWITCHKANSASAS01.cus.nb.mac.net/1 (Where this one is the first number after WAN).
然后将WAN (008)
之后的其余三个数字拆分为如下形式:
GigaEthernet 0/8
(减去零)或者如果它是10
而不是08
:
GigaEthernet 0/10
最终打印出来的样子:
SWITCHKANSASAS01.cus.nb.mac.net/1 GigaEthernet 0/8
或者如果不是10则为08 GigaEthernet 0/10
我尝试一次执行每个步骤,但是却变得越来越混乱。
我是正则表达式的新手,希望您能为您提供帮助。
谢谢。
答案 0 :(得分:0)
WAN(\d)(\d)0?(\d{1,2})
.cus.nb.mac.net/$1 GigaEthernet $2/$3
说明:
WAN : literally
(\d) : group 1, 1 digit
(\d) : group 2, 1 digit
0? : 0 or nothing
(\d{1,2}) : group 3, 1 (if there is a 0 before) or 2 digits (else)
给出如下输入:
SWITCHKANSASAS01WAN1008
SWITCHKANSASAS01WAN1010
我们得到了:
SWITCHKANSASAS01.cus.nb.mac.net/1 GigaEthernet 0/8
SWITCHKANSASAS01.cus.nb.mac.net/1 GigaEthernet 0/10