使用正则表达式在php中搜索和替换字符串的部分

时间:2016-12-31 05:42:05

标签: php regex string

我想将数字字段的数组(值为864和987)中的实际值替换为下面给出的字段,但我不知道如何将[crowdpdf-total=field_585b0b3288d2e]替换为例如864和{ {1}} [crowdpdf-total=field_585b0b3288d2f]

数组:

987

字符串:

array (
'field_585b0b3288d2e'=> 864,
'field_585b0b3288d2f => 987
)

我擅长许多事情,但由于某些原因,我从未完全理解正则表达式...我猜正则表达式是用实际值替换etc etc etc content [crowdpdf-total=field_585b0b3288d2e] etc etc [crowdpdf-total=field_585b0b3288d2f] etc content 的方法吗?正则表达式是走这里的方式吗?

我希望字符串为:

[crowdpdf-total={nameoffield}]

澄清:
我理解如何更换的实际值,所以我可以像替换那样做 etc etc etc content 864 etc etc 987 etc content 我可以删除[crowdpdf-total=864],只需用空字符串替换[crowdpdf-total=,但我会在每个值的末尾添加一个括号。

1 个答案:

答案 0 :(得分:3)

您不需要为此使用正则表达式。一个简单的字符串替换将执行:

<?php

$string = <<<EOT
etc etc etc content
[crowdpdf-total=field_585b0b3288d2e] 
etc etc [crowdpdf-total=field_585b0b3288d2f] 
etc content
EOT;

$replacements = [
    'field_585b0b3288d2e' => 864,
    'field_585b0b3288d2f' => 987,
];

foreach ($replacements as $find => $replace) {
    $string = str_replace("[crowdpdf-total=$find]", $replace, $string);
}

echo $string;

输出:

etc etc etc content
864 
etc etc 987 
etc content

Test it online,如果你愿意的话。