正则表达式为大写的Unicode不匹配“O”?(Regex for uppercase Unicod

2019-06-25 04:45发布

它似乎不承认重音O为大写

#!/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数据,这已经牌O为大写。 从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' '́')

Answer 1:

你错过了use open ':std', ':locale'; 正确编码您的输出。

如果不工作,你的文件没有使用UTF-8,即使你告诉Perl的是编码。



文章来源: Regex for uppercase Unicode does not match “Ó”?