Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: regex question Underscores, lines and parentheses.

by hippo (Bishop)
on May 06, 2019 at 12:28 UTC ( [id://1233396]=note: print w/replies, xml ) Need Help??


in reply to regex question Underscores, lines and paratheses.

I want to a regex which is able to match a-zA-Z0-9_- and parantheses.

SSCCE:

use strict; use warnings; use Test::More; my @good = ( 'a', '321', '(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"); }

See also How to ask better questions using Test::More and sample data

Replies are listed 'Best First'.
Re^2: regex question Underscores, lines and parentheses.
by Aldebaran (Curate) on May 07, 2019 at 17:10 UTC

    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"); }

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2024-04-25 19:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found