Ich möchte Zahlen erhöhen, die wie folgt geschrieben sind:
add(1 )
oder add( 1)
, aber nicht wie folgt add(1)
. Ich habe einen Code, der in Notepad++ mit dem Python Script-Plugin funktioniert, aber alle Zahlen erhöht:
import re
def calculate(match):
return '%s' % (str(int(match.group(1)) + 1))
editor.rereplace('(\d+)', calculate)
Außerdem wäre es sehr gut zu wissen, wie man Zahlen nur in add(1 )
, nur add( 1)
, nur add(1)
Fällen erhöht. Sie können mir jede Software vorschlagen, nicht unbedingt Notepad++.
Antwort1
Ändern Sie das Skript in:
import re
import random
def calculate(match):
return '%s' % (str(int(match.group(1)) + 1))
editor.rereplace('((?<=add\( )\d+(?=\))|(?<=add\()\d+(?= \)))', calculate)
Regex-Erklärung:
( # 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
Mit einer Eingabe wie:
add(1 ) or add( 1), but not like this add(1)
es wird geben:
add(2 ) or add( 2), but not like this add(1)