in reply to Pattern matching exlusion
You don't specify which characters are valid as part of the identifier, so the following assumes that any letter or number is okay. From your code snippet, it looked as if you wanted to allow either upper or lower case matching as well:
Output:my $formget = qr(10-[KQ][A-Z0-9]*(?!/))i; while (my $form_type = <DATA>) { if ($form_type =~ /^$formget/ ) { print "Valid: $form_type"; } else { print "Invalid: $form_type"; } } __DATA__ 10-K 10-KSB 10-K405 10-ksb405 10-Q 10-K/A 10-Q/A
Valid: 10-K Valid: 10-KSB Valid: 10-K405 Valid: 10-ksb405 Valid: 10-Q Invalid: 10-K/A Invalid: 10-Q/A
Check out the section titled "Look-Around Assertions" in perlre about using the (?! ...) construct to specify what's called a negative lookahead. That is, something which must not follow the current pattern.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Pattern matching exlusion
by AnomalousMonk (Archbishop) on Nov 29, 2014 at 04:53 UTC | |
by wrkrbeee (Scribe) on Nov 29, 2014 at 13:44 UTC | |
Re^2: Pattern matching exlusion
by wrkrbeee (Scribe) on Nov 29, 2014 at 02:54 UTC | |
by Loops (Curate) on Nov 29, 2014 at 03:07 UTC | |
by wrkrbeee (Scribe) on Nov 29, 2014 at 03:22 UTC |
In Section
Seekers of Perl Wisdom