我试图用多行代替SQL语句中的最后一个FROM。PHP替换多行字符串中最后一次出现的字
以下是我对解决方案最接近的一个例子。
$str = "SELECT *,
(SELECT COUNT(company.id) FROM company WHERE 1 = 4) as calc_field
FROM company
WHERE id = '09401293481-23-12'";
//preg_match("/(FROM (?!.*FROM))/m", $str, $matches);
//print_r($matches);
$str = preg_replace("/(FROM (?!.*FROM))/m", " REPLACEDFROM ", $str);
echo $str;
echo "\n\n";
但是,这是行不通的。它只适用于字符串/查询只有一行(没有换行符)的情况。我得到的输出如下。
SELECT *,
(SELECT COUNT(company.id) REPLACEDFROM company WHERE 1 = 4) as calc_field
REPLACEDFROM company
WHERE id = '09401293481-23-12'
但是,我应该得到的输出,或者我想得到的结果如下所示。
SELECT *,
(SELECT COUNT(company.id) FROM company WHERE 1 = 4) as calc_field
REPLACEDFROM company
WHERE id = '09401293481-23-12'
如何修改我的正则表达式以获得所需的结果?
谢谢!
谢谢!我只是试过这个,它的工作原理。 –