Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: Regex Matching Unicode and Regex Classes

by McA (Curate)
on Nov 02, 2011 at 14:27 UTC ( #935406=note: print w/ replies, xml ) Need Help??


in reply to Re: Regex Matching Unicode and Regex Classes
in thread Regex Matching Unicode and Regex Classes

Hi Moritz,

but what is then the difference to the third case? Is the "default Unicode semantic" changed to something different when local is enabled?

Why is "U+00E4 LATIN SMALL LETTER A WITH DIAERESIS" under locale something different than a letter which is part of a word?

Best regards
Andreas


Comment on Re^2: Regex Matching Unicode and Regex Classes
Re^3: Regex Matching Unicode and Regex Classes
by moritz (Cardinal) on Nov 02, 2011 at 14:41 UTC

    Short answer: because Unicode and locales don't mix.

    Long answer: Perl's support for locales comes from a time before the whole encoding/decoding business and Unicode support. So if locales are active, the locale-sensitive parts expect to act on bytes, not on decoded strings.

    Since the locale is not ISO-8859-1 but UTF-8, encoding to Latin-1 doesn't fix it for you.

    If anything, you'd need to encode to UTF-8 to see the \w matching , but even then I don't see it matching. So either my understanding of locales is very wrong, or perl is broken (or a mixture thereof).

      Hi Moritz,

      that sounds plausible, but not satisfying. ;-)

      What is then the right approach to find word boundaries with regex while locale is enabled?

      Best regards
      Andreas

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://935406]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2014-11-23 03:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (128 votes), past polls