This seems to be such an elegant little script for dealing with character classes but also the hyphen. I replicated it and save such scripts for the rainy day when I wonder how to do exactly this. I changed the data slightly to satisfy myself that that hyphen matched.
$ ./1.hippo_regex.pl 1..7 ok 1 - a matched ok 2 - - matched ok 3 - (321) matched ok 4 - a(321-)_HGF matched ok 5 - "@$ not matched ok 6 - ~ not matched ok 7 - [{ not matched
Source:
#!/usr/bin/perl -w use 5.011; use Test::More; my @good = ( 'a', '-', '(321)', 'a(321-)_HGF' ); my @bad = ( '"@$', '~', '[{' ); my $re = qr/^[a-zA-Z0-9_()-]+$/; plan tests => @good + @bad; for my $str (@good) { like ($str, $re, "$str matched"); } for my $str (@bad) { unlike ($str, $re, "$str not matched"); }
In reply to Re^2: regex question Underscores, lines and parentheses.
by Aldebaran
in thread regex question Underscores, lines and paratheses.
by sbrothy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |