On Mon, Jan 06, 2003 at 11:40:08PM -0200, andrej hocevar wrote: | Hello. | I've been playing around with these two REs in Perl with no | success. Can anyone tell me what's wrong?
Disclaimer: I assume !~ means "does not match". (I don't do perl) (However, I know that =~ means "matches") | This works: | !~ /^(?:red|blue)$/ | | and will match everything except any of the two fixed strings | "red" or "blue" or any combination thereof. The regex will match only the string "red" or "blue", no combinations. The expression will be true iff the regex doesn't match. | "black" matches, as does "blu", because it's neither red nor blue. Close but not quite. The _regex_ doesn't match, but the expression is true. | Then I wanted to convert the above expression to a "positive" | match, like this: | =~ /^[^(?:red|blue)]$/ ^ ^ What do square brackets mean? (hint: _character_ class) A successful match with that expression will consist of : . start of input/line/string) . any single character as long as it is not one of bdelru()?:|. . end of input/line/string | which fails. Why is this? You didn't say what you meant to say :-). Computers only do what you say, not what you mean. | Is there no way of saying "neither/nor", just "either/or"? That is correct (AFAIK). -D -- "Wipe Info uses hexadecimal values to wipe files. This provides more security than wiping with decimal values." -- Norton SystemWorks 2002 Manual http://dman.ddts.net/~dman/
msg22755/pgp00000.pgp
Description: PGP signature