in reply to Regex matching words with numbers, but not numbers.
Just use two regexen, and consider a match successful only if the first regex matches but the second doesn’t. For example, to match sequences containing only letters, digits, and hyphens, but not containing all digits:
#! perl use strict; use warnings; my $re1 = qr{ ^ [\w-]+ $ }x; my $re2 = qr{ ^ \d+ $ }x; while (<DATA>) { chomp; printf "%s : %s\n", $_, /$re1/ && !/$re2/ ? 'yes' : 'no'; } __DATA__ foo 1foo foo2 3foo4 foo5bar 87 foo-bar foo42-baz foo17@12
Output:
17:03 >perl 950_SoPW.pl foo : yes 1foo : yes foo2 : yes 3foo4 : yes foo5bar : yes 87 : no foo-bar : yes foo42-baz : yes foo17@12 : no 17:04 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|