Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Regex Tester

by sutch (Curate)
on Mar 05, 2003 at 15:34 UTC ( #240601=sourcecode: print w/ replies, xml ) Need Help??

Category: Misc
Author/Contact Info sutch
Description: After over a year away from Perl (doing PHP coding), I'm happy to start using Perl again. I just put this script together to help another developer test regular expressions.

Comments are welcome.

#!/usr/bin/perl -w
# script to test regular expressions.

use strict;

# assign the regular expression
my $re = qr/^(\$-|-\$|\$)(\d+|(\d*\.\d\d))$/;

# assign valid strings
my @valid = (
  '$1',
  '$1.11',
  '$.11',
  '-$1',
  '-$1.11',
  '-$.11',
  '$-1',
  '$-1.11',
  '$-.11',
);

# assign invalid strings
my @invalid = (
  '',
  '$',
  '$1.1',
  '$1.111',
  '$.1',
  '$.111',
  '-',
  '-$',
  '-$1.1',
  '-$1.111',
  '-$.1',
  '-$.111',
  '$-',
  '$-1.1',
  '$-1.111',
  '$-.1',
  '$-.111',
);

# leave alone
my $mismatches = 0;
foreach my $valid (@valid) {
  if ( $valid !~ $re ) {
    print "valid string doesn't match: $valid\n";
    $mismatches += 1;
  }
}
foreach my $invalid (@invalid) {
  if ( $invalid =~ $re ) {
    print "invalid string does match: $invalid\n";
    $mismatches += 1;
  }
}
print "$re had $mismatches mismatches with the " . (0 + @valid + @inva
+lid) . " test cases\n";

Comment on Regex Tester
Download Code
Re: Regex Tester
by hiseldl (Priest) on Mar 06, 2003 at 03:32 UTC
Re: Regex Tester
by perlguy (Deacon) on Mar 06, 2003 at 08:36 UTC
    why not make your code a little bit more readable (and a bit more perl-ish), by changing this:
    # assign valid strings my @valid = ( '$1', '$1.11', '$.11', '-$1', '-$1.11', '-$.11', '$-1', '$-1.11', '$-.11', );
    to something like this, using the qw() operator:
    # assign valid strings my @valid = qw( $1 $1.11 $.11 -$1 -$1.11 -$.11 $-1 $-1.11 $-.11 );
    Of course, if you ever have any spaces in your future tests, this goes mostly out the window, but since your strings seem to fit just fine, I would say it will be a little easier to read and maintain. So long as no one reads the $- and $1 as variables, you should be good to go.
Re: Regex Tester
by Aristotle (Chancellor) on Mar 09, 2003 at 04:35 UTC

Back to Code Catacombs

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://240601]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (11)
As of 2014-10-23 16:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (126 votes), past polls