如何在 Notepad++ 中搜索包含换行符的字符串

如何在 Notepad++ 中搜索包含换行符的字符串

我正在查看字幕文件,里面有类似的东西

442
00:24:18,017 --> 00:24:20,551
现在你只是在寻找
替罪羊。

我想知道如何搜索“just looking for a”并让它找到它。目前“you're just looking”匹配,“for a scapegoat”匹配,“looking for”不匹配。

我尝试将搜索模式设置为正常/扩展

答案1

如果您使用扩展搜索,则可以\r\n在 Windows 上创建文档时搜索换行符。在 Linux 上创建文档时,很可能只有\n

因此如果你搜索:

just looking\r\nfor a

它应该会帮你找到匹配项。要准确确定要搜索的内容,请按工具栏中的按钮以启用显示所有特殊字符。

任何 都CR被发现在搜索中\r,并且任何 都LF被发现在搜索中\n

仔细查看行首和行末是否有空格,并搜索这些空格。

答案2

记事本使用 PCRE(Perl 兼容正则表达式)进行搜索/替换。因此,您可以使用\s空格,例如一个空格/换行符

looking\sfor

或此正则表达式至少包含一个或多个空格/换行符

looking\s+for

也可以看看regular-expressions.info - 简写字符类

\s 代表“空白字符”。同样,它实际上包含哪些字符取决于正则表达式的风格。在本教程中讨论的所有风格中,它都包含 [ \t\r\n\f]。也就是说:\s 匹配空格、制表符、换行符或换页符。大多数风格还包括垂直制表符,但 Perl(5.18 版之前)和 PCRE(8.34 版之前)是明显的例外。在支持 Unicode 的风格中,\s 通常包含 Unicode“分隔符”类别中的所有字符。Java 和 PCRE 再次是例外。但 JavaScript 确实使用 \s 匹配所有 Unicode 空白。

答案3

有多种方法,正则表达式和 Perl 太棒了!

1. 尝试将其放入正则表达式中,然后搜索不带引号的“just looking.*?for a”,并确保选中复选框,以使 . 字符匹配换行符。这样可以匹配换行符,如果您不想让它也匹配换行符,请在 .*? 周围放置 []*。

2. 像其他答案一样逐字匹配 \r\n。将 make 放入正则表达式中并搜索“just looking\r\nfor a”,这将匹配换行符,如果不想匹配换行符,请在 \r\n 周围加上 []*。在 [] 括号内添加 \s+ 也可以匹配空格。

希望这能有所帮助!请发表评论以澄清!

相关内容