大写Unicode的正则表达式与“Ó”不匹配?

时间:2012-06-05 04:39:26

标签: regex perl unicode utf-8

它似乎无法将重音Ó识别为大写

#!/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";

返回

SIM

Perl应该能够使用已经标记为大写的Unicode数据。 来自emacs 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' '́')

1 个答案:

答案 0 :(得分:10)

您缺少use open ':std', ':locale';来正确编码输出。

如果这不起作用,即使您告诉Perl,您的文件也不会使用UTF-8进行编码。