develooper Front page | perl.beginners | Postings from January 2002

RE: Pattern Matching - Remove Alpha

Thread Previous | Thread Next
January 16, 2002 16:15
RE: Pattern Matching - Remove Alpha
Message ID:
	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++, $_;



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

Wags ;)
-----Original Message-----
From: Hewlett Pickens []
Sent: Wednesday, January 16, 2002 15:39
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 


To unsubscribe, e-mail:
For additional commands, e-mail:

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About