적어도 한쪽에 공백이 있는 텍스트의 모든 숫자를 늘리는 방법은 무엇입니까?

적어도 한쪽에 공백이 있는 텍스트의 모든 숫자를 늘리는 방법은 무엇입니까?

add(1 )or 와 같이 쓰여진 숫자를 증가시키고 싶지만 add( 1)이와는 다릅니다 add(1). Python 스크립트 플러그인을 사용하여 Notepad++에서 작동하는 코드가 하나 있지만 모든 숫자가 증가합니다.

import re

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

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

add(1 )또한 only , only add( 1), only 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)

관련 정보