获取搜索词的行 - Notepad++ 的 Python 脚本

Posted

技术标签:

【中文标题】获取搜索词的行 - Notepad++ 的 Python 脚本【英文标题】:Getting line of a search term - Python Script for Notepad++ 【发布时间】:2015-06-29 17:05:38 【问题描述】:

我正在尝试自动删除我在 Notepad++ 上编辑的 html 代码上的一些文本,我正在使用插件 PythonScript 来执行此操作。我只有一个问题:例如,我想删除除第一个之外的所有<center>。我想我可以使用这个功能:

Editor.rereplace("search", "replace"[, flags[, startPosition[, endPosition[, maxCount]]]])

由于我不想删除第一个术语,我可以将startPosition 设置为第一个术语之后的一行。唯一的问题是我在 Python 脚本中找不到任何闪烁函数找到我正在寻找的文本。也许这个research 函数可以帮助找到解决方案:

Editor.research(search, matchFunction[, flags[, startPosition[, endPosition[, maxCount]]]])

但我找不到任何与 .research 相关的功能对我有帮助。

【问题讨论】:

似乎您可以编写一个正则表达式来传递 Editor.research() ,该表达式将匹配包括第一个换行符在内的所有内容。 Editor.research() == (R(egular)E(xpression)Search) 我相信。 【参考方案1】:
matches = []
def match_found(m):
    # append the match start position to the matches array
    matches.append(m.end(0))

editor.research('pattern', match_found)

matches[0]  #should now contain the index of the *end* of the first match

m.end() 因为你想使用匹配的结尾作为下一次搜索的开始

【讨论】:

再次感谢您抽出宝贵时间,RaGe,一切正常。 :)

以上是关于获取搜索词的行 - Notepad++ 的 Python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

regex-Notepad ++搜索并替换丢失的行

notepad去除每行空格后面的所有的内容,并且获取每行最后一个字段的内容(就是删除每行的行首空格)

将冒号插入Mac地址列表

正则表达式在Notepad ++中查找/替换多个文本

notepad 如何选择被标记的行?

notepad如何删除某个字符开头的行,notepad如何删除空白行?