Notepad++ 重新编号

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)

它什么都没做。为什么?我做错了什么?

答案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

相关内容