-1

有两种表达引用的方式:

' apostrophe
’ single quotation

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

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

4

2 回答 2

1

你所说的“单引号”是unicode字符“右单引号”。在 Perl 中处理 unicode 字符时,一定要正确识别输入和脚本的编码。有关详细信息,请参阅perlunicode - Perl 中的 Unicode 支持。

$ perl -CO -E 'use utf8; say for "’Hello’" =~ /(’)/g'
’
’
于 2013-09-02T14:55:15.360 回答
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/);

提供您希望匹配的字符列表,然后为正则表达式创建字符类是一种方法,如上所示。

于 2013-09-02T15:05:59.977 回答