![如何在 Notepad++ 中搜索包含换行符的字符串](https://linux22.com/image/1553568/%E5%A6%82%E4%BD%95%E5%9C%A8%20Notepad%2B%2B%20%E4%B8%AD%E6%90%9C%E7%B4%A2%E5%8C%85%E5%90%AB%E6%8D%A2%E8%A1%8C%E7%AC%A6%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我正在查看字幕文件,里面有类似的东西
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+ 也可以匹配空格。希望这能有所帮助!请发表评论以澄清!