テキスト内の少なくとも片側にスペースがあるすべての数字を増やすにはどうすればよいでしょうか?

テキスト内の少なくとも片側にスペースがあるすべての数字を増やすにはどうすればよいでしょうか?

add(1 )または のように記述された数値を増分したいのですが add( 1)、 のようには書きませんadd(1)。Python スクリプト プラグインを使用して Notepad++ で動作するコードが 1 つありますが、これはすべての数値を増分します。

import re

def calculate(match):
    return '%s' % (str(int(match.group(1)) + 1))

editor.rereplace('(\d+)', calculate)

add(1 )また、のみ、 のみadd( 1)、 のみの場合にのみ数値を増分する方法を知っておくと非常に便利ですadd(1)。特に Notepad++ ではなく、任意のソフトウェアを提案していただけますか。

答え1

スクリプトを次のように変更します。

import re
import random
def calculate(match):
    return '%s' % (str(int(match.group(1)) + 1))

editor.rereplace('((?<=add\( )\d+(?=\))|(?<=add\()\d+(?= \)))', calculate)

正規表現の説明:

(                   # group 1
    (?<=add\( )     # positive lookbehind, make sure we have "add( " (with a space after parenthesis) before
    \d+             # 1 or more digits
    (?=\))          # positive lookahead, make sure we have a closing parenthesis after
  |               # OR
    (?<=add\()      # positive lookbehind, make sure we have "add(" (without spaces after parenthesis) before
    \d+             # 1 or more digits
    (?= \))         # positive lookahead, make sure we have a space and a closing parenthesis after
)                   # end group 1

次のような入力の場合:

add(1 ) or add( 1), but not like this add(1)

それは次のようになります:

add(2 ) or add( 2), but not like this add(1)

関連情報