2013-12-10 15 views
5

これらの数値に一定の値を加算または加算するにはどうすればよいですか?例えば、私の目標は100の中のすべての数字を増やすことですが、それは問題を抱えています。基本的に何とか+100で現在の数値を合計します。メモ帳++正規表現加算番号

私は「」内のすべての番号を見つけることができますが、私は100を追加する方法を見つけることができませんメモ帳++

<devio1="([0-9]+)" devio2="([0-9]+)" devio3="([0-9]+)" devio4="([0-9]+)"/> 

と、この正規表現を使用して次の行に

<devio1="875" devio2="7779" devio3="5635" devio4="154"/> 
<devio1="765" devio2="74779" devio3="31535" devio4="544"/> 
<devio1="4335" devio2="13" devio3="55635" devio4="1565"/> 

を持っていますそれらのすべてに。 Notepad ++で正規表現を使用してこの作業を行うことはできますか?

+1

本当にあなたの質問に答えて、あなたの問題にのみ:あなたはPerlの使用を検討したいかもしれません。 – Peter

+2

正規表現は文字列操作用ですが、実際には数学を行うのには適していません。 –

+0

正規表現だけを使っては達成できません。コールバックが必要です。あなたはnotepad ++用の独自のプラグインを作成するか、好みの言語を使用するだけです。 – HamZa

答えて

0

Regexは算術演算をサポートしておらず、Notepad ++は正規表現を超えた計算をサポートしていないので、自分自身をそのツールに限定していると困惑しています。もちろん、Notepad ++以外の多くのソリューションがありますが、そのうちのいくつかはMath operations in regexで議論されています。

3

私はnotepad ++に精通していませんが、アルゴリズムはabcd = a * 1000 + b * 100 + c * 10 + dという数字を仮定すると、bが[0,8] bをb + 1で置き換えることができます。 b = 9の場合、bを0に置き換え、aをa + 1に置き換える必要があります(a = 9の場合はaを10で置き換えます)。このことを留意

、あなたはその後、3と4桁の数字のために、たとえば、以下の正規表現を適用することができます:

\([1-9]+\)0\([0-9]{2}\) -> \1 1\2, 
\([1-9]+\)1\([0,9]{2}\) -> \1 2\2, 
... -> , 
\([1-9]+\)8\([0-9]{2}\) -> \1 9\2, 

のように...あなたも= 9の任意のAを検討する必要があることに留意し、 b = 9の整数、およびより大きな整数。これは、10^x(x> = 2)の係数が9に等しい場合をカバーするif文を使った何らかの反復を示唆しています。実際にこれをコーディングする(または手で行う)ようになると、これは純粋な正規表現のアプローチでは苦痛になるでしょう。

8

Notepad ++で正規表現を単独で使用することはできません。残念ながら、置き換えパターンで計算を実行する方法はありません。

Notepad ++でタスクを実行する唯一の方法は、Python Scriptプラグインを使用することです。

  1. Plugin Managerからかofficial websiteからPython Scriptプラグインをインストールしてください。
  2. Plugins>Python Script>New Scriptに移動します。新しいファイルのファイル名を選択してください(例:add_numbers.py)と、以下のコードをコピー:>add_numbers.py

    def calculate(match): 
        return 'devio%s="%s"' % (match.group(1), str(int(match.group(2))+100)) 
    
    editor.rereplace('devio([0-9])="([0-9]+)"', calculate) 
    
  3. 実行Plugins>Python Script>Scriptsをし、あなたのテキストがに変換されます。

    <devio1="975" devio2="7879" devio3="5735" devio4="254"/> 
    <devio1="865" devio2="74879" devio3="31635" devio4="644"/> 
    <devio1="4435" devio2="113" devio3="55735" devio4="1665"/> 
    
+0

ありがとう。あなたは本当のmvpです! ^^ – Korbi