正则表达式匹配部分行,然后查看并替换(并删除该行)

时间:2018-06-08 15:23:48

标签: php regex pcre lookbehind

我有一个这种格式的字符串:

                $something = $gateway->execute($query) or die(mysql_error() . " here");
                $id  = mysql_insert_id();

这很棘手,因为我想最终得到这个:

$id = $gateway->execute($query) or die(mysql_error() . " here");

我已经尝试匹配mysql_insert_id行,然后查找$ gateway->执行并用捕获的$ id替换$ something,但我还没弄明白。这甚至可能吗? 我也想删除mysql_insert_id行,但我可以随后grep并替换为空字符串。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以匹配botch元素并根据需要重新组合它们:

\$\w+\s+=\s+(\$gateway->execute\(\$query\)\s+or\s+die\(mysql_error\(\)\s+\.\s+"\s+here"\);).*(\$id)\s+=\s+mysql_insert_id\(\);

Demo

如果$ gateway-> ..部分是固定字符串,则可以简化。