检查一个string是否包含一个子string

我怎样才能检查给定的string是否包含一个特定的子string,使用Perl?

更具体地说,我想看看s1.domain.com是否存在于给定的stringvariables中。

3 Solutions collect form web for “检查一个string是否包含一个子string”

要找出一个string是否包含子string,可以使用index函数:

 if (index($str, $substr) != -1) { print "$str contains $substr\n"; } 

它将返回$str第一次出现的位置,如果未find子string,则返回-1。

另一种可能性是使用正则expression式 ,Perl是着名的:

 if ($mystring =~ /s1\.domain\.com/) { print qq("$mystring" contains "s1.domain.com"\n); } 

反斜杠是需要的,因为a . 可以匹配任何字符。 您可以使用\Q\E运算符来解决这个\Q

 my $substring = "s1.domain.com"; if ($mystring =~ /\Q$substring\E/) { print qq("$mystring" contains "$substring"\n); } 

或者,你可以按照eugene的说法使用索引函数。 只是一个警告:索引返回一个-1当它找不到一个匹配,而不是一个undef0

因此,这是一个错误:

 my $substring = "s1.domain.com"; if (not index($mystring, $substr)) { print qq("$mystring" doesn't contains "$substring"\n"; } 

如果s1.domain.com位于string的开头,这将是错误的。 我已经不止一次地被烧毁了。

不区分大小写的子string示例

这是Eugene的答案的扩展,它在检查子string之前将string转换为小写字母:

 if (index(lc($str), lc($substr)) != -1) { print "$str contains $substr\n"; } 
  • 文本或字节串
  • 使用加号时会创build多less个String对象?
  • Python:获取列表中第一个string的第一个字符?
  • val()如何返回Number?
  • Javascript如何从string中删除文本
  • Javascript包含大小写不敏感
  • 在PowerShell中连接一个variables和一个没有空格的string文字
  • 快速testingOLE DB连接string的方法
  • 在XPath评估之前如何处理string中的双引号?
  • 如何使用angularjsdynamic设置HTML元素的id属性?
  • 如何将string转换为Python中的整数?