首页 > 解决方案 > 如何使用正则表达式 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);

但它不工作。

标签: phpregexpreg-replace

解决方案


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

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删除的行


推荐阅读