我想使用curl来查看页面的来源,如果该源包含与该字符串匹配的单词,那么它将执行打印。我该怎么做if $string contains
?
在VB中就像是。
dim string1 as string = "1"
If string1.contains("1") Then
Code here...
End If
类似于Perl的东西。
答案 0 :(得分:86)
如果您只需要在另一个字符串中搜索一个字符串,请使用index
函数(如果您想从字符串末尾开始扫描,请使用rindex
):
if (index($string, $substring) != -1) {
print "'$string' contains '$substring'\n";
}
要搜索字符串以查找pattern匹配项,请使用匹配运算符m//
:
if ($string =~ m/pattern/) {
print "'$string' matches the pattern\n";
}
答案 1 :(得分:27)
if ($string =~ m/something/) {
# Do work
}
something
是正则表达式。
答案 2 :(得分:1)
对于不区分大小写的字符串搜索,请结合使用index
(或rindex
)和fc
。此示例扩展了Eugene Yarmash的答案:
use feature qw( fc );
my $str = "Abc";
my $substr = "aB";
print "found" if index( fc $str, fc $substr ) != -1;
# Prints: found
print "found" if rindex( fc $str, fc $substr ) != -1;
# Prints: found
$str = "Abc";
$substr = "bA";
print "found" if index( fc $str, fc $substr ) != -1;
# Prints nothing
print "found" if rindex( fc $str, fc $substr ) != -1;
# Prints nothing
如果找不到子字符串,则index
和rindex
都返回-1
。
并且fc
返回其字符串参数的大小写折叠形式,因此应在此处使用它,而不要使用(更熟悉的)uc
或lc
。请记住要启用此功能,例如使用use feature qw( fc );
。