Find/Replace number with Increment Value
Hi to everyone, i am looking for some help here!!!
What i want to do is to Search and Replace incrementally the pattern below [#n+1].
As am aware this will require a python script probably.
[#0] T=2 F=INITIALKEY 1=Gm 2=1A 3=0|0 [#1] T=2 F=INITIALKEY 1=A\u266d m 2=1A 3=0|0 [#2] T=2 F=INITIALKEY 1=D# m 2=2A 3=0|0```
Yes, PythonScript is the way to go. There is even an example of a callback which does “add one” (search for
add_1in the PS “Editor Object” docs)
and here is a post where I show it in this Forum
addenda: regex would be something like
@PeterJones thanks for the help!
I don’t exactly understand how to succeed what i want to!
Sorry, given that you knew PythonScript would be required, I thought you already knew how to use it.
if this is a one-off, just use the PythonScript, show console, and type the next 3 filled lines (plus a couple of extra returns between the function and the call, because the console requires an extra newline to end a function definition…)
def add_1(m): return m.group(1) + str(int(m.group(2)) + 1) + m.group(3) editor.rereplace('([\#)(\d+)(])', add_1);
Yes, after debugging, I changed the regex to make the replacement easier for me.
If this is going to be used more than once, do Python Script > New Script, and paste in those four lines, and use the PythonScript menus to run the script and/or assign it to the Run menu…
@PeterJones If i am right this adds one to the existed digit inside the brackets.
What i actually want is to add one to the next bracket so if bracket one is [#1] the next one to be [#2].
The example below is my actual problem.
i want the script to calculate the digit inside the previous bracket [#34] and replace the next one [#1] with [#35] the [#2] with [#36] and so on !
[#34] T=2 F=INITIALKEY 1=E maj 2=12B 3=0|0 [#1] T=2 F=INITIALKEY 1=Gm 2=1A 3=0|0 [#2] T=2 F=INITIALKEY 1=A\u266dm 2=1A 3=0|0```
I believe this does what you want:
prev = None def renumber(m): global prev if prev == None: prev = int(m.group(2)) else: prev = prev + 1 return m.group(1) + str(prev) + m.group(3) editor.rereplace(r'^([#)(\d+)(])', renumber);
@PeterJones Thank you for your time appreciated!
It needs a small fix (adding some \ ) and it works flawlessly!
Sorry, even in ```, the forum strips
[under certain circumstances
i was so pissed of…
i was trying to post the correct one but i couldn’t…
i tried to edit my post about 100 times in the last minute!!!
Thanks once again!
I suppose that the regex, in the Python script, is
If so, Peter, I can edit your post and make the corrections. Just tell me !
Remark : To explicitly write the literal strings
\], in our forum, you need to write them as
Note also that, unfortunately, the
Previewpanel does not show the right layout :-(( Things are OK when you click on the
Submitbutton, only !
To write the text, of the Remark line, just above, I needed to write :
\before each square bracket !
\before each square bracket !
This post is deleted!