【问题标题】:Notepad++ Find and Select Specific Text or Number in my caseNotepad++ 在我的情况下查找并选择特定的文本或数字
【发布时间】:2016-10-14 05:13:34
【问题描述】:

我正在尝试编辑 .srt 文件,但我被困在一项特定任务上。我相信可能有更简单的方法,但是在搜索了几个小时后,我找不到任何对我有帮助的东西。我正在尝试选择所有出现的字符串“1”,然后使用列编辑器将这些出现增加 1。

这里的第一张图片显示了我的 .srt 文件中的主要问题。我想选择,而不是突出显示当前以绿色突出显示的所有值。查找和替换框似乎没有任何帮助,因为我需要在所选字符串上使用列编辑器进行增量操作。我也尝试了标记功能,但也没有用。

一旦我选择了它们,我就可以执行这些操作。

我知道我可以按住 ctrl 键并手动选择我需要编辑的行,但这需要很长时间。知道我需要选择的文本已经以绿色突出显示,但没有被选中,这有点令人沮丧。当谈到 Notepad++ 时,我只是一个新手用户,所以我不知道所有的功能。任何帮助将非常感激。谢谢。

【问题讨论】:

  • 恕我直言,最简单的方法是用您最喜欢的脚本语言编写脚本。
  • 大声笑我知道非常非常基本的python和java。我无法理解为什么没有像搜索和选择这样的简单功能。就像我需要选择的值已经以绿色突出显示,以便大声呼喊。
  • 如果有人能解释为它编写代码对选择这样简单的事情有多么困难。我不知道我必须使用什么类型的编程命令,甚至不知道如何将代码实现到 Notepad++ 中。您确定没有选择特定文本的简单方法吗?
  • 难点不是选择,而是替换。要选择所有仅包含1 的行:menu Search > Mark...,在搜索框中键入^1$,选中Mark the lines,然后单击Find All。我不确定所有这些 therms,因为我没有英文版的 Npp。
  • 我刚试过,标记功能似乎并没有真正选择我需要的东西。感觉就像它只是突出显示。如果我用一个手动选择行并进行列编辑器操作,它就可以工作。这是我尝试过的图片,我使用自己的网站托管图片以保持质量。 pcrepairforums.com/attachment.php?aid=36 。在上面的问题中,您可以看到,如果我手动选择编号为 1 的行并执行该列编辑操作,它会按我的需要工作,但如果我尝试使用标记功能,它似乎并没有实际选择文本。

标签: text notepad++ edit subtitle srt


【解决方案1】:

这是不可能轻松地选择该文本。但是,如果你有 PythonScript 插件,这很容易用 Python 脚本来完成,比如

counter = -1

def increment_whole_line_number(match):
    global counter
    counter += 1
    return str(int(match.group())+counter)

editor.rereplace(r'(?m)^\d+$', increment_whole_line_number)

(?m)^\d+$ 正则表达式匹配仅包含数字(1 个或多个数字)的整行。

Here 是关于如何安装工作 PythonScript 版本的说明(因为由于某种原因,内置对我不起作用)。

这是我的测试:

【讨论】:

  • 为了使正则表达式更适合您的场景,您可以使用(?m)^\d+(?=\r?\n\d{2}:\d{2}:\d{2},\d{3} -->)
  • 谢谢,我得去看牙医了,不过我今晚一定会试试看的。
  • 我有一点时间,第一次尝试就成功了。非常感谢。每天学习新事物。现在我将研究脚本并了解它如何应用于记事本++,所以也许我可以自己构建。
猜你喜欢
  • 2016-08-06
  • 2014-02-19
  • 2013-05-26
  • 2019-11-25
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多