我试图从字符串中删除某些表情符号,但我不知道如何匹配由特殊字符和字母组成的表情符号,例如 :D 或 :-D(它适用于像“:- )”)。我试过了
$message =~ s/\:D//;
和其他一些变体,但似乎没有任何效果。我哪里错了?
编辑:我其实很蠢,没有意识到我在这个命令之前把所有的字母都变成了小写,所以所有的表情符号都已经变成了“:d”。感谢您的帮助。
最佳答案
use strict; use warnings;
my $s = "Hello ;-) :D :-D <3 World!";
my @emoticons = qw' ;-) :D :-D <3 ';
my $pat = join '|', map qr/\Q$_\E/, @emoticons;
$s =~ s/$pat//g;
$s =~ s/ +/ /g;
print "$s\n";
输出:
Hello World!
关于regex - Perl 正则表达式匹配表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439637/