找到一个子字符串并在一个大字符串中匹配在PHP中的正则表达式?

时间:2011-10-20 15:01:53

标签: php regex

我想找到一个在大字符串中存在或匹配的给定子字符串。

- >给定的子字符串可以包含\n \r \r

我试试

if(preg_match("`".$sub_str."(.*)`im", $str, $matches)){

     //DO something when it true

}

对于那种情况我不知道任何给定子字符串的问题是什么?

1 个答案:

答案 0 :(得分:1)

修饰符i是不区分大小写的标记。

修饰符m是多行标记。

从我能够非常快速地看出来的情况来看,这是一种可怕的做法:

$pos = stripos($find_it, $str);
if ($pos !== false) {
    // $find_it exists within $str, $matches contains string after
    $matches = substr($str, $pos);
}

正则表达式只是在另一个字符串($find_it)中找到(以不区分大小写,多行感知的方式)a($str)并将其后的所有内容放入捕获组(在$匹配)。以上是代码的松散匹配,只是更快。


直接回答您的问题,preg_match$find_it内不存在$str时会返回错误。