in reply to Re^2: Pattern matching exlusion
in thread Pattern matching exlusion
... m[10-KQ^/*$] ...
Huh?!? You really need to start using <code> ... </code> tags. Please see Markup in the Monastery, Writeup Formatting Tips, How do I post a question effectively?.
How would I incorporate the code [BrowserUk] suggested ...
One way would be to copy the contents of the m// given by BrowserUk into a qr// regex object as you originally had it, and then interpolate the qr// into a m// match as in your OP (I'm using \z in place of $ to match absolute end-of-string):
Please see perlre, perlrequick and perlretut.c:\@Work\Perl\monks>perl -wMstrict -le "my @tests = qw[ 10-K 10-KSB 10-K405 10-KSB405 10-Q 10-K/B 10-KA/ 10-KSB/ABC 10-K405/A 10-KSB405/A 10-Q/A ]; ;; my $formget = qr{ 10- [KQ] [^/]* \z }xms; ;; print qq{'$_': }, $_ =~ m[^$formget] ? 'matches' : 'does not match' f +or @tests; " '10-K': matches '10-KSB': matches '10-K405': matches '10-KSB405': matches '10-Q': matches '10-K/B': does not match '10-KA/': does not match '10-KSB/ABC': does not match '10-K405/A': does not match '10-KSB405/A': does not match '10-Q/A': does not match
Also: What version of Perl are you working with? It may be useful to know this for future reference.
Update: I forgot about case insensitivity. You can add this with an /i modifier:
my $formget = qr{ 10- [KQ] [^/]* \z }xmsi;
or, better, IMHO, for stylistic reasons, (?i)
my $formget = qr{ (?i) 10- [KQ] [^/]* \z }xms;
or, best of all,
my $formget = qr{ 10- [KkQq] [^/]* \z }xms;
because it avoids the /i performance hit if you are processing very many strings or very long strings.
|
|---|