Find/Replace number with Increment Value

  • and here is a post where I show it in this Forum

    addenda: regex would be something like (\[\#\d+\]) /addenda

  • @PeterJones thanks for the help!

    I’am burned…
    I don’t exactly understand how to succeed what i want to!

  • @DJSpirosG ,

    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 + str(int( + 1) +
    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 !

    1=E maj

  • @DJSpirosG ,

    I believe this does what you want:

    prev = None
    def renumber(m):
        global prev
        if prev == None:
            prev = int(
            prev = prev + 1
        return + str(prev) +
    editor.rereplace(r'^([#)(\d+)(])', renumber);

  • @PeterJones Thank you for your time appreciated!

    It needs a small fix (adding some \ ) and it works flawlessly!

    editor.rereplace(r'^([\#)(\d+)(])', renumber);

  • @DJSpirosG ,

    Sorry, even in ```, the forum strips \[ to become [ under certain circumstances

  • @PeterJones
    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!

  • Hello @peterjones, @DJSpirosG and All,

    I suppose that the regex, in the Python script, is r'^(\[#)(\d+)(\])' and NOT r'^([#)(\d+)(])' !!

    If so, Peter, I can edit your post and make the corrections. Just tell me !

    Remark : To explicitly write the literal strings \[ and \], in our forum, you need to write them as \\[ and \\]

    Note also that, unfortunately, the Preview panel does not show the right layout :-(( Things are OK when you click on the Submit button, only !



    P.S. :

    To write the text, of the Remark line, just above, I needed to write :

    • First, 2 consecutive \ before each square bracket !

    • Second, 3 consecutive \ before each square bracket !

  • This post is deleted!

Log in to reply