如何使用正则表达式 preg_replace php 删除字符串

How to delete string with regex preg_replace php

我有这样的完整字符串:

Route::post('asdasdasdad/{param1}/{param2}', 'Admin\RouteController@a212e12e');.

并想删除那条路线,所以在 preg_replace 我专注于

Route::post('asdasdasdad 作为开始文本和

Admin\RouteController@a212e12e'); 作为最后一个文本。

这是我的尝试

preg_replace("/Route::post('asdasdasdad\(.*Admin\RouteController@a212e12e');\s*/s", "", $string);

但它不起作用。

你的正则表达式中有一些错误,一些未转义的正则表达式字符。试试这个

preg_replace("/Route::post\('asdasdasdad.*Admin\\RouteController@a212e12e'\);\s*/s", "", $string); 

如果要一次性替换多行

preg_replace_all("/Route::post\('asdasdasdad.*Admin\\RouteController@a212e12e'\);\s*/s", "", $string); 

就像您将 multi line 修饰符添加到您的正则表达式

一样
$string = file_get_contents('route.php');
$string = preg_replace("/Route::post\('asdasdasdad.*Admin\\RouteController@a212e12e'\);\s*/s", "", $string);
echo $string;

您得到删除了 EOL 的行