You are viewing a plain text version of this content. The canonical link for it is here.
Posted to regexp-user@jakarta.apache.org by Sarika Inamdar <si...@cisco.com> on 2003/09/15 14:21:31 UTC
Regexp with groups and subgroups
Hi All,
We have to write a regular expression to extract some values for mutiple
interfaces.
For example : We have a command :
"show mpls l2 vc details "
The output of this command gives details of the mpls for mutiple
interfaces viz :
Local interface: VFI erms1 up
Destination address: 10.8.99.3, VC ID: 13, VC status: up
Tunnel label: 29, next hop point2point
Output interface: PO9/2, imposed label stack {29 40}
Create time: 1w2d, last status change time: 2d09h
Signaling protocol: LDP, peer 10.8.99.3:0 up
MPLS VC labels: local 40, remote 40
Group ID: local 0, remote 0
MTU: local 9216, remote 9216
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 143929, send 488
byte totals: receive 10266253, send 42323
packet drops: receive 0, send 0
Local interface: VFI ERMS-VPN-2000 up
Destination address: 10.8.99.3, VC ID: 2000, VC status: up
Tunnel label: 29, next hop point2point
Output interface: PO9/2, imposed label stack {29 42}
Create time: 2d03h, last status change time: 2d03h
Signaling protocol: LDP, peer 10.8.99.3:0 up
MPLS VC labels: local 62, remote 42
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 305, send 306
byte totals: receive 25925, send 27234
packet drops: receive 0, send 0
We need to extract the highlighted values like VCD id and the VC
statistics like ( packet totals, byte totals, packet drops)
We have written a reg exp which will extract the above value. But this
works only for one interface.
The reg-exp is :
VC ID: (\d+),[\w\W\s]+packet totals: receive (\d+), send (\d+)\s+byte
totals:\s+receive (\d+), send (\d+)\s+packet drops:\s+ receive (\d+),
send (\d+)
Can this be enhanced into groups and subgroups to get values for all the
interfaces listed in the above output ?
Any help on this is greatly appreciated.
Thanks in Advance,
Sarika
RE: Regexp with groups and subgroups
Posted by Sarika Inamdar <si...@cisco.com>.
Hi,
Thanks a lot for the advice.
But , we cannot change the code, since we have one common code which
parses the reg-exp and extracts the groups.
So we want to write the reg-exp with nested groups.Each group extracted
is the "Local interface " group. The attributes we want to collect from
this group will be the subgroups.
Is this possible using reg-exp ?
We did the following :
(Local interface: [\w\W\s]+VC ID: (\d+),[\w\W\s]+packet totals: receive
(\d+), send (\d+)\s+byte totals:\s+receive (\d+), send (\d+)\s+packet
drops:\s+ receive (\d+), send (\d+))+
With this, am able to extract only the last group. Any hints, ideas on
how to proceed on this would be of great help.
Thanks Again,
Sarika
> -----Original Message-----
> From: Michael McCallum [mailto:gholam@xtra.co.nz]
> Sent: Tuesday, September 16, 2003 5:15 AM
> To: Regexp Users List
> Subject: Re: Regexp with groups and subgroups
>
>
> Divide and conquer just break up your input into separate interfaces.
>
> something like
>
> String output = getShowOutput();
> int index = output.indexOf( "interface:" );
> int secondIndex = output.indexOf( "interface:", index );
> String firstInterface = output.substring( index, secondIndex );
>
> then do the match on firstInterface and get the values and
> repeat the process
> to get the next interface.
>
> kind regards
>
> Michael
> On Tuesday, 16 September, 2003 00:21, Sarika Inamdar wrote:
> > Hi All,
> >
> > We have to write a regular expression to extract some values for
> > mutiple interfaces.
> >
> > For example : We have a command :
> >
> > "show mpls l2 vc details "
> >
> > The output of this command gives details of the mpls for mutiple
> > interfaces viz :
> >
> > Local interface: VFI erms1 up
> > Destination address: 10.8.99.3, VC ID: 13, VC status: up
> > Tunnel label: 29, next hop point2point
> > Output interface: PO9/2, imposed label stack {29 40}
> > Create time: 1w2d, last status change time: 2d09h
> > Signaling protocol: LDP, peer 10.8.99.3:0 up
> > MPLS VC labels: local 40, remote 40
> > Group ID: local 0, remote 0
> > MTU: local 9216, remote 9216
> > Remote interface description:
> > Sequencing: receive disabled, send disabled
> > VC statistics:
> > packet totals: receive 143929, send 488
> > byte totals: receive 10266253, send 42323
> > packet drops: receive 0, send 0
> >
> > Local interface: VFI ERMS-VPN-2000 up
> > Destination address: 10.8.99.3, VC ID: 2000, VC status: up
> > Tunnel label: 29, next hop point2point
> > Output interface: PO9/2, imposed label stack {29 42}
> > Create time: 2d03h, last status change time: 2d03h
> > Signaling protocol: LDP, peer 10.8.99.3:0 up
> > MPLS VC labels: local 62, remote 42
> > Group ID: local 0, remote 0
> > MTU: local 1500, remote 1500
> > Remote interface description:
> > Sequencing: receive disabled, send disabled
> > VC statistics:
> > packet totals: receive 305, send 306
> > byte totals: receive 25925, send 27234
> > packet drops: receive 0, send 0
> >
> > We need to extract the highlighted values like VCD id and the VC
> > statistics like ( packet totals, byte totals, packet drops)
> >
> > We have written a reg exp which will extract the above
> value. But this
> > works only for one interface. The reg-exp is :
> > VC ID: (\d+),[\w\W\s]+packet totals: receive (\d+), send
> (\d+)\s+byte
> > totals:\s+receive (\d+), send (\d+)\s+packet drops:\s+
> receive (\d+),
> > send (\d+)
> > Can this be enhanced into groups and subgroups to get
> values for all the
> > interfaces listed in the above output ?
> > Any help on this is greatly appreciated.
> > Thanks in Advance,
> > Sarika
> >
> >
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: regexp-user-help@jakarta.apache.org
>
> --
> Michael McCallum
> Software Engineer
> SnapHire Inc.
> http://www.SnapHire.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: regexp-user-help@jakarta.apache.org
>
>
Re: Regexp with groups and subgroups
Posted by Michael McCallum <gh...@xtra.co.nz>.
Divide and conquer just break up your input into separate interfaces.
something like
String output = getShowOutput();
int index = output.indexOf( "interface:" );
int secondIndex = output.indexOf( "interface:", index );
String firstInterface = output.substring( index, secondIndex );
then do the match on firstInterface and get the values and repeat the process
to get the next interface.
kind regards
Michael
On Tuesday, 16 September, 2003 00:21, Sarika Inamdar wrote:
> Hi All,
>
> We have to write a regular expression to extract some values for mutiple
> interfaces.
>
> For example : We have a command :
>
> "show mpls l2 vc details "
>
> The output of this command gives details of the mpls for mutiple
> interfaces viz :
>
> Local interface: VFI erms1 up
> Destination address: 10.8.99.3, VC ID: 13, VC status: up
> Tunnel label: 29, next hop point2point
> Output interface: PO9/2, imposed label stack {29 40}
> Create time: 1w2d, last status change time: 2d09h
> Signaling protocol: LDP, peer 10.8.99.3:0 up
> MPLS VC labels: local 40, remote 40
> Group ID: local 0, remote 0
> MTU: local 9216, remote 9216
> Remote interface description:
> Sequencing: receive disabled, send disabled
> VC statistics:
> packet totals: receive 143929, send 488
> byte totals: receive 10266253, send 42323
> packet drops: receive 0, send 0
>
> Local interface: VFI ERMS-VPN-2000 up
> Destination address: 10.8.99.3, VC ID: 2000, VC status: up
> Tunnel label: 29, next hop point2point
> Output interface: PO9/2, imposed label stack {29 42}
> Create time: 2d03h, last status change time: 2d03h
> Signaling protocol: LDP, peer 10.8.99.3:0 up
> MPLS VC labels: local 62, remote 42
> Group ID: local 0, remote 0
> MTU: local 1500, remote 1500
> Remote interface description:
> Sequencing: receive disabled, send disabled
> VC statistics:
> packet totals: receive 305, send 306
> byte totals: receive 25925, send 27234
> packet drops: receive 0, send 0
>
> We need to extract the highlighted values like VCD id and the VC
> statistics like ( packet totals, byte totals, packet drops)
>
> We have written a reg exp which will extract the above value. But this
> works only for one interface.
> The reg-exp is :
> VC ID: (\d+),[\w\W\s]+packet totals: receive (\d+), send (\d+)\s+byte
> totals:\s+receive (\d+), send (\d+)\s+packet drops:\s+ receive (\d+),
> send (\d+)
> Can this be enhanced into groups and subgroups to get values for all the
> interfaces listed in the above output ?
> Any help on this is greatly appreciated.
> Thanks in Advance,
> Sarika
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: regexp-user-help@jakarta.apache.org
--
Michael McCallum
Software Engineer
SnapHire Inc.
http://www.SnapHire.com/