在字符串中搜索模式

时间:2013-02-28 22:54:37

标签: regex perl

我需要确定是否

  

+查看CR @someuser

存在于字符串中。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您需要转义元字符并使用匹配的正则表达式m//

if ($string =~ /\+review CR \@someuser/) {
    # do something
}

请注意,您不能使用\Q ... \E转义序列来转义元字符,因为@someuser仍会被插值。你可以将它用于+,但是你仍然需要转义@,所以这种方式更简单。您也可以使用quotemeta功能。但是,在这种情况下可能有点矫枉过正。

perldoc perlop

中详细了解此信息

答案 1 :(得分:1)

使用index

$search_string = "+review CR \@someuser";
if (index($string, $search_string) != -1) { # found }

或者,如果你使用正则表达式,你需要确保'+'和'@'被正确转义:

if ( $string =~ m#\+review CR \@someuser# ) { # found }