php替换 表达式,如何使用preg_replace和regex表达式替换php文件中的代码块?

我想,也许有些表达类似于

(\h{2,}"[^"\r\n]+")$

可能在某种程度上起作用:

测试

$re = '/(\h{2,}"[^"\r\n]+")$/m';

$str = '$array1 = array(

"item1\' => "value1",

"item2\' => "value2",

"item3\' => "value3",

"item4\' => "value4",

);

$array2 = array(

"item1"

"item2"

"item3"

"item4"

);

$array3 = array(

"item1\' => "value1",

"item2\' => "value2",

"item3\' => "value3",

"item4\' => "value4",

);';

$subst = '$1,';

$result = preg_replace($re, $subst, $str);

echo $result;

输出

$array1 = array(

"item1' => "value1",

"item2' => "value2",

"item3' => "value3",

"item4' => "value4",

);

$array2 = array(

"item1",

"item2",

"item3",

"item4",

);

$array3 = array(

"item1' => "value1",

"item2' => "value2",

"item3' => "value3",

"item4' => "value4",

);

如果您希望简化/更新/探索表达式,将在

regex101.com

. 您可以查看匹配的步骤或在中修改它们

this debugger link

,如果你感兴趣的话。调试器演示了

a RegEx engine

可能会逐步使用一些示例输入字符串并执行匹配过程。

方法2

我想,一个类似于,

(?s)(?<=\$array2 = array\()[^)]*

也许可以调查一下。

$re = '/(?s)(?<=\$array2 = array\()[^)]*/';

$str = '$array1 = array(

"item1" => "value1",

"item2" => "value2",

"item3" => "value3",

"item4" => "value4",

);

$array2 = array(

"item1",

"item2",

"item3",

"item4",

);

$array3 = array(

"item1" => "value1",

"item2" => "value2",

"item3" => "value3",

"item4" => "value4",

);';

$subst = '\\n\\t"itemA",\\n\\t"itemB",\\n\\t"itemC",\\n\\t"itemD"\\n';

$result = preg_replace($re, $subst, $str);

echo $result;

产出2

$array1 = array(

"item1" => "value1",

"item2" => "value2",

"item3" => "value3",

"item4" => "value4",

);

$array2 = array(\n\t"itemA",\n\t"itemB",\n\t"itemC",\n\t"itemD"\n);

$array3 = array(

"item1" => "value1",

"item2" => "value2",

"item3" => "value3",

"item4" => "value4",

);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值