Connecting Tech Pros Worldwide Help | Site Map

Need help with REGEX

Michael R. McPherson Pierotti
Guest
 
Posts: n/a
#1: Oct 23 '08
Folks its been awhile (5 years) since I have done anything with Perl so I
consider myself back at newbie statis :(


#strict on

use Net::Telnet ();

$t = new Net::Telnet (Timeout =10,Prompt ='/\</' ); #

$t->open(Host ="X.X.X.X");

$t->waitfor('/ENTER USERNAME \</');
$t->print("XXXXXXX");
$t->waitfor('/ENTER PASSWORD \</');
$t->print("XXXXXXX");
$t->waitfor('/\</')
or die "No Prompt";

@out1 = $t->get;

# -------------- #
# Dump all trees #
# -------------- #

@RIR = $t->cmd(String ="ZRIR:;", Output_record_separator ="\n") or die
"EEEK";
print @RIR;

$n=0;
while ($RIR[$n]) {
if ($RIR[$n] =~ m/^TREE/){
$line = $RIR[$n];
$line =~ /\d/;
print $line . "\n";
}
$n++;
}


Now my problem is this. The Net::Telnet command fills my array with lines
like the following

TREE= 950 ATYPE=N TON=INT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
1 0 1011 SPR NGC 11 32 APR 335 2 N 31

ATYPE=N TON=NAT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
671456 0 900 SPR SC 1 32 APR 336 2 N 33

ATYPE=N TON=NAT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
671476 0 900 SPR SC 1 32 APR 336 2 N 33

My code if ($RIR[$n] =~ m/^TREE/) is successfully REGEX for my "TREE= 950
ATYPE=N TON=INT "

Now want I want to do is a REGEX to pull ONLY the digits out of this (950)
and assign them to s $string. Obviosly my $line =~ /\d/; isn't working
and
I am braindead on REGEX since it has been so long.

Any and all help is greatly appricited.

BR Mike

Pedro Silva
Guest
 
Posts: n/a
#2: Oct 27 '08

re: Need help with REGEX


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm sure there's a better way of doing this:

$v="TREE= 950 ATYPE=N TON=INT ";

$v=~m/(\d)(\d)(\d)/;

$s=$1 . $2 . $3;

Pedro

Michael R. McPherson Pierotti wrote:
Quote:
Folks its been awhile (5 years) since I have done anything with Perl so I
consider myself back at newbie statis :(
>
>
#strict on
>
use Net::Telnet ();
>
$t = new Net::Telnet (Timeout =10,Prompt ='/\</' ); #
>
$t->open(Host ="X.X.X.X");
>
$t->waitfor('/ENTER USERNAME \</');
$t->print("XXXXXXX");
$t->waitfor('/ENTER PASSWORD \</');
$t->print("XXXXXXX");
$t->waitfor('/\</')
or die "No Prompt";
>
@out1 = $t->get;
>
# -------------- #
# Dump all trees #
# -------------- #
>
@RIR = $t->cmd(String ="ZRIR:;", Output_record_separator ="\n") or die
"EEEK";
print @RIR;
>
$n=0;
while ($RIR[$n]) {
if ($RIR[$n] =~ m/^TREE/){
$line = $RIR[$n];
$line =~ /\d/;
print $line . "\n";
}
$n++;
}
>
>
Now my problem is this. The Net::Telnet command fills my array with lines
like the following
>
TREE= 950 ATYPE=N TON=INT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
1 0 1011 SPR NGC 11 32 APR 335 2 N 31
>
ATYPE=N TON=NAT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
671456 0 900 SPR SC 1 32 APR 336 2 N 33
>
ATYPE=N TON=NAT
DIGITS AL NBR RT CT SP NL RC DEST CHI CNT
SDEST
671476 0 900 SPR SC 1 32 APR 336 2 N 33
>
My code if ($RIR[$n] =~ m/^TREE/) is successfully REGEX for my "TREE= 950
ATYPE=N TON=INT "
>
Now want I want to do is a REGEX to pull ONLY the digits out of this (950)
and assign them to s $string. Obviosly my $line =~ /\d/; isn't working
and
I am braindead on REGEX since it has been so long.
>
Any and all help is greatly appricited.
>
BR Mike
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkFbLcACgkQvUI03qKHSRrbmwCeMi8HJg0gXS gDQsshLi9+uzR/
pcUAn1f0t7pWubhjjO2ALUSyJUW7xX8E
=rCw7
-----END PGP SIGNATURE-----
Closed Thread