2012-06-05 20 views
8

O Perl zaten büyük harf olarak Ç etiketleri Unicode verileri kullanmak mümkün olmalıdır büyük harf olarakBüyük harf için Regex Unicode "Ó" ile eşleşmiyor mu?

#!/usr/bin/env perl 
use strict; 
use warnings; 
use 5.14.0; 
use utf8; 
use feature 'unicode_strings'; 

" SIMÓN " =~ /^\s+(\p{Upper}+)/u; 
print "$1\n"; 

döner

SIM 

aksanlı Ç tanımadığı gibi görünüyor. Sen düzgün çıkışını kodlamak için use open ':std', ':locale'; kaçırıyorsunuz demektir Emacs'ta describe-char

character code properties: customize what to show 
    name: LATIN CAPITAL LETTER O WITH ACUTE 
    old-name: LATIN CAPITAL LETTER O ACUTE 
    general-category: Lu (Letter, Uppercase) 
    decomposition: (79 769) ('O' '́') 
+0

Sana – paxdiablo

+1

Ah, özürlerimle, @pst :-) sağlananlardan daha bir _more_ minimal durum nasıl alabilir görmüyorum. Sadece içerikten ziyade _count_ satırına bakıyordum. RE’nin muhtemelen basitleştirilebileceği konusunda haklısınız. – paxdiablo

cevap

10

itibaren .

Bu işe yaramazsa, dosya Ne olduğunu Perl söylemek rağmen UTF-8 kullanılarak kodlanmış değildir.

+1

Bu işe yaradı! Hiç anlamıyorum, çünkü benim örneğim sadece bir dizgi kullanıyor ve bir dosya kullanmıyor ... Sanırım baskı 1 $ 'lık baskı yaptığımda bastığımda – user525602

+1

Tam olarak. ': std', STDOUT ve STDERR’e kodlanacak dizelere ve STDIN’den gelen baytların deşifre edilmesine neden olur. – ikegami

İlgili konular