有两种表达引用的方式:
' apostrophe
’ single quotation
在 Perl 中,我可以' apostrophe
使用正则表达式进行匹配。但是,我不能 ’ single quotation
以同样的方式匹配。
这里有什么问题?非常感谢!
有两种表达引用的方式:
' apostrophe
’ single quotation
在 Perl 中,我可以' apostrophe
使用正则表达式进行匹配。但是,我不能 ’ single quotation
以同样的方式匹配。
这里有什么问题?非常感谢!
你所说的“单引号”是unicode字符“右单引号”。在 Perl 中处理 unicode 字符时,一定要正确识别输入和脚本的编码。有关详细信息,请参阅perlunicode - Perl 中的 Unicode 支持。
$ perl -CO -E 'use utf8; say for "’Hello’" =~ /(’)/g'
’
’
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/);
提供您希望匹配的字符列表,然后为正则表达式创建字符类是一种方法,如上所示。