2017-08-25 17 views
-1

テキストファイルに表示されるすべての数字を増やしたいと思います。このファイルにはページ番号のインデックスが含まれていますが、インデックス番号が書き込まれる前に導入された追加の紹介ページを考慮するために、すべてのページ番号を「x」ページずつインクリメントする必要があります。テキストファイルの数値を大きい数値に置き換えるにはどうすればよいですか?

例:物理学202の

哲学

心の

44-45

、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

私は引用します:* "みんなで是非コードの1行です" * - それは複数の行です* lo!* –

+1

@ Fred-ii- ish :) –

+0

Ok ... * 'ish *それはそうです:-)) –

関連する問題