Could do something like:

   @MyNbrs = map{ /(\d+)/g } $MyInp;

Small script:

my @MyNbrs = ();

while ( 1 ) {
   printf "Please enter string of data:\n";
   chomp(my $MyInp = <STDIN>);
   last if ( $MyInp =~ /^ex$/i );
   @MyNbrs = map{ /(\d+)/g } $MyInp;
   my $MyCnt = 1;
   foreach ( @MyNbrs ) {
      printf "%3d: %6d\n", $MyCnt++, $_;
    }
 }

Input:
adfafdafd1234erer12dasd34qweqeqweqw4567

Output:

  1:   1234
  2:     12
  3:     34
  4:   4567

Wags ;)
-----Original Message-----
From: Hewlett Pickens [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, January 16, 2002 15:39
To: [EMAIL PROTECTED]
Subject: Pattern Matching - Remove Alpha


I am unable to use "split" with pattern matching to remove alpha characters
from a string and will appreciate a pointer on what I'm doing wrong. (Have
looked in "Learning Perl" and "Programming Perl" but can't spot my error.)

The detail:

 "$stat" is a string that has alpha and numeric data in it.
 I want to remove all of the alpha and put the numeric data into an array.

 The first attempt:

   my @nums = split(/a-zA-Z/,$stat); # removes all data from the string

 The second attempt:

   my @nums = split(/a-z/,$stat); # removes all data from the string

>From reading, my understanding of "split":  Discards all data that matches
the pattern and returns a set of list values for the unmatched data. ("my
understanding" may be the problem)

This pattern works - removes all blanks (white space) but leaves alpha and
numbers which of course isn't what I want

   my @nums = split(/ +/,$stat);   # removes all blanks 

Hewlett


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to