2017-08-25 17 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 *它是:-)) –

相關問題