我希望这是一个简单的问题。我对notepad ++和regex非常熟悉,但对于notepad ++的python插件我是新手。我知道插件可以用数字替换值,然后增加替换它的数量。
我想要更改的代码如下所示:
Hello, blah blah blah <a href="#filepos14613280" >@*</a> blah blah blah
More stuff <a href="#filepos14634533" >@*</a> blah blah blah
Even more stuff <a href="#filepos14614629" >@*</a> blah blah blah
我想将其改为:
Hello, blah blah blah <a href="#filepos14613280" >1</a> blah blah blah
More stuff <a href="#filepos14634533" >2</a> blah blah blah
Even more stuff <a href="#filepos14614629" >3</a> blah blah blah
任何有关.py文件/脚本应该是什么样子的帮助都将不胜感激。
答案 0 :(得分:0)
这个程序的一个简单示例,您可能要编写以更改行的一个位置如下:
lines = open('filename.whatever').readlines()
NewLines = []
increments = 1
for line in lines:
NewLines.append(line.replace('@*', str(increments)))
increments += 1
with open('filename_modified.whatever', 'w') as new:
new.write('\n'.join(NewLines))
但是,当然,用文件名替换'filename.whatever'。 希望这个有效! (这不是与记事本++相关的,但我认为这是你最好的选择。)
答案 1 :(得分:0)
我希望以下两个功能可以帮助您:)
第一个功能
# replace multiple occurrences of a string by an incremental number
# e.g. <rn>, <rn>, <rn> ...
# becomes
# <rn1>, <rn2>, <rn3> ...
#
# **m.group(1)** same like regex argument **\1**
# **global counter** means: use (global) variable **counter** outside def in def
# more about global and local variables: https://www.python-course.eu/global_vs_local_variables.php
import re
counter = 0
def get_counter(m):
global counter
counter = counter + 1
return m.group(1) + str(counter) + '>'
editor.rereplace('(<rn)>', get_counter, re.IGNORECASE)
第二项功能
# replace X followed by numbers by an incremental number
# e.g. X56 X39 X999
# becomes
# Y57 Y40 Y1000
def add_1(m):
return 'Y' + str(int(m.group(1)) + 1)
editor.rereplace('X([0-9]+)', add_1)