好吧,我知道这是一个新问题,但是如果IF 1(文本:测试出现在数据字符串中),我将如何仅执行IF 2.我尝试将两者结合起来但最终出现了各种各样的问题.因此,如果测试没有显示跳过的循环,如果它,那么我将在IF 2中运行的正则表达式代码.
$data = 'hello world "this is a test" last test'; // IF 1 if (stripos($data,'test') !== false) { } // IF 2 if (preg_match('/"[^"]*"/i',$data,$regs)) { $quote = str_word_count($regs[0],1); $data = str_replace($regs[0],'"'.implode(' ',$quote).'"',$data); } echo $data;
或者:
if (stripos($data,'test') !== false) { if (preg_match('/"[^"]*"/i',$regs)) { $quote = str_word_count($regs[0],1); $data = str_replace($regs[0],$data); } }
要么:
if (stripos($data,'test') !== false && preg_match('/"[^"]*"/i',$regs)) { $quote = str_word_count($regs[0],1); $data = str_replace($regs[0],$data); }
两者都做同样的事情.和&&运算符意味着“和”.||运算符意味着“或”.