in reply to Pattern Match

ep_svr_<any number>_<3 letters>_<3 letters>_<any character>
How aboot
my @strs = qw( ep_svr_1_abc_ZYX_! ep_svr_2_DEF_wvu_? ep_svr_3_GhI_tSr_# ep_svr_x_aaa_bbb__ xep_svr_2_ccc_ddd_x ep_svr_4_ee_ffff_y ); for(@strs) { print m< ^ ep_svr_ \d _ [A-Za-z]{3} _ [A-Za-z]{3} _ . \z >xi ? "valid pattern: $_\n" : "invalid pattern: $_\n"; } __output__ valid pattern: ep_svr_1_abc_ZYX_! valid pattern: ep_svr_2_DEF_wvu_? valid pattern: ep_svr_3_GhI_tSr_# invalid pattern: ep_svr_x_aaa_bbb__ invalid pattern: xep_svr_2_ccc_ddd_x invalid pattern: ep_svr_4_ee_ffff_y
There I'm using the /x modifier so whitespace doesn't effect the regex, non-standard delimiters (just personal preference) and \z to specify the end of the string (not the end of the line). See perlre and perlop for more info.
HTH

_________
broquaint

Replies are listed 'Best First'.
Re: Re: Pattern Match
by Cabrion (Friar) on Feb 04, 2003 at 16:17 UTC
    m< ^ ep_svr_ \d _ [A-Za-z]{3} _ [A-Za-z]{3} _ \S \z >xi
    Presumably something on the end other than whitespace.

    However, broquaint gets the kudos.

    Updated: I'm the idiot that doesn't know plural forms of words like character!