我想將GigabitEthernet0/1
分割爲GigabitEthernet
和0/1
。 我嘗試使用,基於java中模式匹配的字符串分割問題
str.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
,但沒有得到正確的結果。我應該使用什麼樣的模式。第二部分不僅是數字,還包含「/」。
在我的使用案例中,我也可能有GigabitEthernet0
,它可以拆分爲GigabitEthernet
和0
。
什麼是正確的正則表達式?
我想將GigabitEthernet0/1
分割爲GigabitEthernet
和0/1
。 我嘗試使用,基於java中模式匹配的字符串分割問題
str.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
,但沒有得到正確的結果。我應該使用什麼樣的模式。第二部分不僅是數字,還包含「/」。
在我的使用案例中,我也可能有GigabitEthernet0
,它可以拆分爲GigabitEthernet
和0
。
什麼是正確的正則表達式?
我嘗試了以下的正則表達式來分割
String gigaByteWithSlash = "GigabitEthernet0/1";
String gigaByteWithoutSlash = "GigabitEthernet0";
//String[] part = gigaByte.split("(?<=\\D)(?=\\d/\\d)");
String[] part00 = gigaByteWithSlash.split("(?<=[a-zA-Z])(?=\\d)");
System.out.println(part00[0]);
System.out.println(part00[1]);
String[] part01 = gigaByteWithoutSlash.split("(?<=[a-zA-Z])(?=\\d)");
System.out.println(part01[0]);
System.out.println(part01[1]);
打印
GigabitEthernet
0/1
GigabitEthernet
0
謝謝。但是,當我有GigabitEthernet0時,這不起作用。 Tried String [] part = gigaByte.split(「(?<= \\ D)(?= \\ d)」);但是這對GigabitEthernet0/1不起作用 – nisha
只做了編輯,適用於G..0和0/1 –
String[] part = gigaByte.split("(?<=[\\w&&\\D])(?=\\d)");
同時適用於我上述的情況。
試試這個正則表達式
([a-zA-Z]+)([0-9\/.:]+)
它適用於
GigabitEthernet0/1 --> interface on chassis/card
GigabitEthernet0/1.1 --> interface with sub interface
Serial0/1/1:1.1 --> channelized serial/POS interface
GigabitEthernet0 --> interface on chassis (In some Cisco IOS devices)
另外要注意,如果你正在處理IOS配置,你需要考慮到的子接口:'Serial0/0.14'。 – chrylis