2017-08-25 57 views
-1

我会增加出现在文本文件中的所有数字。该文件包含页码索引,但所有页码都需要增加'x'页数,以考虑索引写入之前引入的其他介绍性页面。如何用较大的数字替换文本文件中的数字?

例如,

理念

头脑的

44-45

物理学202,213的

,219

哲学论点

电感33

演绎89,102

由于!

+3

目前你的代码是什么? – z3nth10n

+1

您需要**尝试自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+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); 

注意,这里假设你已经知道如何读取文件内容,并将其写回,你只是不知道该怎么做了更换。

+0

我引用:*“来吧伙计们,这是一行代码。”* - 这是多个行* lo!* –

+1

@ Fred-ii-这是一行 - ish :) –

+0

好的... *'ish *它是:-)) –

相关问题