Perl中不同的表达方式引用

时间:2013-09-02 14:40:06

标签: perl

有两种表达语录的方式:

' apostrophe
’ single quotation

在Perl中,我可以使用正则表达式匹配' apostrophe。但是,我无法以同样的方式匹配’ single quotation

这里有什么问题?非常感谢!

2 个答案:

答案 0 :(得分:1)

你所谓的“单引号”是unicode字符“RIGHT SINGLE QUALATION MARK”。在Perl中处理unicode字符时,请确保正确识别输入和脚本的编码。有关详细信息,请参阅perlunicode - Unicode support in Perl

$ perl -CO -E 'use utf8; say for "’Hello’" =~ /(’)/g'
’
’

答案 1 :(得分:0)

use strict;
use warnings;

my $validq1=qq|' apostrophe|;
my $validq2=qq|’ single quotation|;
my $noquotes=qq| teapot|;

my @listofquotechars=qw(' ` " ’);

my $quotematcher="[".join("",map {quotemeta($_)} @listofquotechars)."]";

print $validq1 if ($validq1 =~ /$quotematcher/);
print $validq2 if ($validq2 =~ /$quotematcher/);
print $noquotes if ($noquotes =~ /$quotematcher/);

给出一个你想要匹配的字符列表,然后为正则表达式创建一个字符类是一种方法,如上所示。