Перенумерация в Notepad++

есть ли способ (регулярное выражение или другая опция) автоматически перенумеровать ID обратно на 1, 2 и так далее, как в примере ниже?

<comment id="53" status="new">
<comment id="54" status="new">
<comment id="55" status="new">

для этого:

<comment id="1" status="new">
<comment id="2" status="new">
<comment id="3" status="new">

Я пытался использовать скрипт Python из ссылки в комментарии ниже. Я адаптировал его для кода выше, и он выглядит так:

def calculate(match):
    return 'comment id="%s"' % (match.group(1), str(int(match.group(2))-52))

editor.rereplace('comment id="([0-9]+)"', calculate)

Это ничего не делать. Почему? Что я делаю неправильно?

20
задан Máté Juhász
01.01.2023 11:54 Количество просмотров материала 3477
Распечатать страницу

1 ответ

ниже приведен скрипт Python 3.6. Имя файла нужно будет изменить, и если структура файла изменится в будущем, регулярное выражение также может потребовать некоторых настроек, но на данный момент оно должно работать гладко независимо от количества строк в файле.

import re
file = open('my_file_1.txt', 'r+')
i=1
new_file_content=""
for line in file:
    p = re.compile('(\d+)')
    new_file_content += p.sub(str(i), line)
    i+=1
file.seek(0)
file.truncate()
file.write(new_file_content)
file.close()


# REFERENCES
# [1] https://docs.python.org/3/tutorial/inputoutput.html
# [2] https://docs.python.org/3/howto/regex.html
1
отвечен wlod 2023-01-02 19:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх