如何用更大的数字替换文本文件中的数字?

时间:2017-08-25 17:40:29

标签: php replace

我要增加文本文件中出现的所有数字。该文件包含页码索引,但所有页码都需要增加“x”页数,以考虑在编写索引之前引入的其他介绍页。

EG。

理念

心灵44-45

of physics 202,213,219

哲学论证

归纳33

演绎89,102

谢谢!

1 个答案:

答案 0 :(得分:5)

使用preg_replace_callback这应该是一项相当简单的任务。

$str = preg_replace_callback('/(\d+)/', function($nums) { return $nums[0] + 1; }, $str);

正则表达式匹配数字,回调将每个数字的递增版本返回给替换函数。

您还可以使用use将带有增量值的变量传递给回调,而不是在那里进行硬编码。

$increment = 5;    
$str = preg_replace_callback('/(\d+)/', function($nums) use ($increment) {
    return $nums[0] + $increment;
}, $str);

请注意,这假设您已经知道如何读取文件内容并将其写回,而您只是不知道如何进行替换。