コマンドshow vlan
を入力し、この形式でデータを受信しています。これは1つの文字列です。
switch# show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default Active Fa1/0, Fa1/1, Fa1/4, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Gi0
2 VLAN0002 Active
3 VLAN0003 Active Fa1/5
6 VLAN0006 Active
999 VLAN0999 Active Fa1/2, Fa1/3
switch#
VLANの番号で始まり、VLAN番号に達したときに終了する新しい文字列を作成したいと思います。したがって、ここでの文字列は次のようになります。
(1) 1 default Active Fa1/0, Fa1/1, Fa1/4, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Gi0
(2) 2 VLAN0002 Active
(3) 3 VLAN0003 Active Fa1/5
(4) 6 VLAN0006 Active
(5) 999 VLAN0999 Active Fa1/2, Fa1/3
ここで何をしますか?数字の後に空白が続くが、その前に\rまたは\nが付いている正規表現をテストしますか?または、.charAt(i)などを使用してJavaで同様ですか?そしてそれを部分文字列にしますか?
これらの各文字列を空白区切り文字でトークンに分割する必要があります。forループを使用して、推測する各文字列を調べます。
\ r \ nの後に数字が続く場合は、分割してみましたが、これでよかったですか?
String[] parts = finalCommand.split("\r\n?=\\d");
しかし、それは機能しませんか?!理由がよくわかりません。