pool has asked for the wisdom of the Perl Monks concerning the following question:
I want to know whether a numeric \x escape can be used to represent a character with a codepoint from U+0080 to U+00ff within a regular-expression character class.
In the code below, the pattern is intended to match any character in the 2-character range from U+007f to U+0080. The string doesn't contain either of those characters, so I expect the match to fail, but instead it succeeds.
The output is: "Your string is matched by /[\7f-\x80]/"
#!/usr/bin/perl -w use warnings 'FATAL', 'all'; # Make every warning fatal. use strict; # Require strict checking of variable references, etc. use utf8; # Treat this script as encoded with UTF-8. my $_ = 'abcdefg'; # Identify a string. print 'Your string is ', (/[\7f-\x80]/ ? '' : 'NOT '), 'matched by /[\7f-\x80]/', "\n"; # Report the result.
Original content restored by GrandFather
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: \x in RE character class
by ikegami (Patriarch) on Dec 10, 2010 at 02:21 UTC | |
|
Re: \x in RE character class
by roboticus (Chancellor) on Dec 10, 2010 at 00:13 UTC | |
by pool (Initiate) on Dec 10, 2010 at 00:23 UTC |