![使用 Notepad++ 从电影/电视剧中提取引语](https://linux22.com/image/1402328/%E4%BD%BF%E7%94%A8%20Notepad%2B%2B%20%E4%BB%8E%E7%94%B5%E5%BD%B1%2F%E7%94%B5%E8%A7%86%E5%89%A7%E4%B8%AD%E6%8F%90%E5%8F%96%E5%BC%95%E8%AF%AD.png)
我有一部 3 小时纪录片的抄本,里面全是我想分享的引言。抄本很长,所以手动浏览需要很长时间。
所以基本上,我只想从成绩单中删除除引号之间的文本之外的所有文本:删除“保留”删除。
我很确定你可以在 Notepad++ 中做到这一点,但我不知道怎么做。有人能帮忙吗?
答案1
解决这个问题的方法是使用正则表达式,一种根据一组规则匹配文本部分的工具。您的规则相当简单 - 捕获两个引号之间的所有内容。我不是最擅长正则表达式的人,但我找到了一个似乎符合您要求的解决方案。
我建议使用升华编辑器来做到这一点 - 首先,我无法在 N++ 中轻松地让它工作,其次,Sublime 真的很棒!
以下是提取引文的方法。
- 在 Sublime 中打开您想要提取的文件。
- 点击
ctrl+f
打开屏幕底部的查找工具。 - 点击查找工具最左侧带有符号的按钮
.*
。这将启用 RegEx 匹配。 - 在查找栏中输入:
"[^"]+"
- 在查找工具最右侧,点击
Find All
- 点击
ctrl+c
复制所有选择。 - 打开一个新文件并点击
ctrl+v
粘贴所有选定的文本。
RegEx 解释
我会将这个表达式分成多个部分。
"
- 这将开始匹配以双引号开头的文本。
[^"]
- 这将匹配所有不包含其他双引号的文本 - 这一点很重要,因为如果我们匹配引号,我们将开始匹配文件中第一个引号后的所有内容!这不是我们想要的。符号^
是 RegEx 中的否定字符 - 它表示不是匹配接下来的内容。-
+"
强制我们仅匹配最终以另一个双引号结尾的文本。这可以防止我们将文档中的最后一个引号与文档末尾进行匹配,并结束我们之前开始的所有匹配,而不会溢出到我们不想匹配的内容。
我想有更漂亮的方法可以做到这一点,但我也希望这能满足您的需求。如果您对此有任何问题,请告诉我!
哦,最后要说的是,我推荐 Sublime 的部分原因是它支持多个光标,这让它可以轻松地同时选择文本的不同部分。尝试打开文档并ctrl+middle click
在几个不同的位置输入,然后开始输入。
编辑
哈哈,我完全忽略了在 Notepad++ 中最显眼的位置(查找工具)中查找内置的 RegEx。您可以用几乎相同的方法进行操作,但没有一个很好的方法来选择所有文本。最简单的方法是单击“在当前文档中查找全部”,然后选择底部“查找”窗口中生成的所有文本。但这不如 Sublime 管理它的方式漂亮。
答案2
尝试这个 :
- Ctrl + H
- 查找内容:^(\l+)
- 替换为:(空)
- 全部替换