Perl 如果字符串以特定字符串结尾,则写入条件
我有一个字符串“约翰说你好”。我如何编写一个Perl 如果字符串以特定字符串结尾,则写入条件,perl,if-statement,Perl,If Statement,我有一个字符串“约翰说你好”。我如何编写一个if条件,它的工作原理如下:如果字符串以单词“says hello”结尾,那么 我想先用正则表达式分离字符串,如下所示: $r =~ /(\w+) (\w+) (.+)/; my($user,$msg) = ($1,"$2 $3"); if ($msg eq "says hello"){ .... } 但是,我想写它,而不使用regex分隔它。如何做到这一点?一种方法是使用$将正则表达式锚定到字符串的末尾: use warnings; use str
if
条件,它的工作原理如下:如果字符串以单词“says hello”结尾,那么
我想先用正则表达式分离字符串,如下所示:
$r =~ /(\w+) (\w+) (.+)/;
my($user,$msg) = ($1,"$2 $3");
if ($msg eq "says hello"){
....
}
但是,我想写它,而不使用regex分隔它。如何做到这一点?一种方法是使用
$
将正则表达式锚定到字符串的末尾:
use warnings;
use strict;
my $r = 'John says hello';
if ($r =~ /says hello$/){
print "found\n"
}
您可以通过将消息存储在变量中来概括这一点:
my $r = 'John says hello';
my $msg = 'says hello';
if ($r =~ /$msg$/){
print "found\n"
}
如果您的消息可能包含正则表达式元字符,则可以使用\Q
:
if ($r =~ /\Q$msg$/){
一个好的资源是($r=~/$说你好'$/)是否工作得太好了?还没有,我需要连接到vpn之类的东西,所以需要时间),所以我从理论上问,如果一开始是单词,它的if($r=~/$John/){print“found\n”}?@edzedz:你不应该真的猜测Perl的语法,因为有这么多好的文档。如果阅读,您将看到
$
标记字符串的结尾,^
标记字符串的开头。