我要增加文本文件中出现的所有数字。该文件包含页码索引,但所有页码都需要增加“x”页数,以考虑在编写索引之前引入的其他介绍页。
EG。
理念
心灵44-45of physics 202,213,219
哲学论证
归纳33
演绎89,102
谢谢!
答案 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);
请注意,这假设您已经知道如何读取文件内容并将其写回,而您只是不知道如何进行替换。