我想找到一个在大字符串中存在或匹配的给定子字符串。
- >给定的子字符串可以包含\n \r \r
我试试
if(preg_match("`".$sub_str."(.*)`im", $str, $matches)){
//DO something when it true
}
对于那种情况我不知道任何给定子字符串的问题是什么?
答案 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
时会返回错误。