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";
Replies are listed 'Best First'.
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
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://240601]
help
Chatterbox?
[Cosmic37]: I was using gneural code in C and it was interesting but did not have back propagation for neural networks
[corenth]: Cosmic, poking at it, but not really.
[Cosmic37]: I read that its possible to use the FANN library with Perl so I might try that now...
[corenth]: i have a question. I used map{ blah();blah(); blah();}@stuff; and it used up a ton of memory vs. the for(@stuff){} equivalent. What gives? (if anyone knows)
[Cosmic37]: FANN also has LGPL license which I like and its supposed to be quite a capable library from what I read
[corenth]: Cosmic, that sounds interesting. What is FANN (I could search it if I weren't so lazy about it)?
[Cosmic37]: how big was @stuff corenth?
[Cosmic37]: Fast Artificial Neural Network (FANN) is cross-platform open source programming library for developing multilayer feedforward Artificial Neural Networks

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2018-02-20 18:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When it is dark outside I am happiest to see ...














    Results (274 votes). Check out past polls.

    Notices?