【问题标题】:Find multiple lines in Notepad++在记事本++中查找多行
【发布时间】:2011-03-30 16:22:45
【问题描述】:

有没有办法找到段落?

比如我要搜索这段代码:

<?php
    $radio_buttons++;
  }
?>

但是当我尝试将其复制到搜索框中时,它只会复制第一行 &lt;?php

似乎肯定有办法做到这一点,但我就是找不到。也许它是一个插件?

【问题讨论】:

  • 我现在在 Mac 上所以无法检查,但我似乎记得 Notepad++ 允许您在搜索字段中指定正则表达式?
  • 是的,但我仍然无法粘贴超过一行
  • 请参阅此stackoverflow.com/questions/405002/…。看起来 Notepad++ 还不支持多行搜索。可能有一个插件,但我没有听说过。

标签: notepad++


【解决方案1】:

我为 Notepad++ 编写了多行搜索和替换插件,在这里查看: http://www.phdesign.com.au/programming/toolbucket-multi-line-search-plugin-for-notepad/


(来源:phdesign.com.au

【讨论】:

  • 这是很棒的东西。谢谢.. 几个月后这仍然是一个问题,而且效果很好。如果我确实只有一个小小的 nitpick,那就是使用 ctral + A 来全选,我这样做来删除以前的搜索似乎不起作用。
  • 感谢您开发了非常有用的工具。我已将它们安装到我的台式机和便携式 Notepad++ 版本中。我会把它们推荐给我的同事。
  • +1,谢谢!我喜欢您进行类似于 Dreamweaver 的 GUI 的查找和替换。唯一缺少的是保存正则表达式的选项。
  • 该插件不适用于 Notepad++ 5.x.x。但它对 6.x.x 的作用就像魅力一样
  • 感谢您提供这个出色的插件,我处理大量需要多行搜索和替换功能的文档。很高兴你为社区提供了这个很棒的工具。谢谢!!
【解决方案2】:

正如Xenovoyance 建议的那样,可以使用 CTRL+R (也可以在菜单选项 TextFX > TextFX Quick > 查找/替换):

只需选择要查找的文本,然后调用该选项...

更新: 用户 Żabojad 让我意识到在最新版本的 Notepad++ 中,默认情况下没有安装“TextFX”插件,所以首先你会必须做以下两件事之一:

  1. 最简单的一种:进入菜单选项Plugins > Plugin Manager > Show Plugin Manager,将可用插件列表滚动到“TextFX 字符”并安装它。

  2. 上面的方法应该可以,否则你必须去这个页面:http://sourceforge.net/projects/npp-plugins/files/TextFX/TextFX%20v0.26/ 并下载文件TextFX.v0.26.unicode.bin.zip 然后将其内容(不要只是复制 zip 文件)解压缩到 Notepad++ 安装文件夹的 \plugins 子文件夹

重启 Notepad++ 后,您会看到菜单项 TextFX

【讨论】:

  • 不幸的是,这个插件似乎也不支持编辑多个打开的文档。
  • Ctrl+R 对我不起作用,直到我进入设置 > 快捷方式映射器,然后单击“从磁盘重新加载”行并单击清除以删除冲突的 Ctrl+R 快捷方式。跨度>
【解决方案3】:

Notepad++ 6.0 开始,正则表达式搜索多行有效。

搜索您的代码类似于

<?php.*\r\n.*$radio_buttons++;.*\r\n.*}.*\r\n.*?>

.* 只是任意数量字符的通配符(换行符除外)。您还可以切换 Notepad++ 对话框中的复选框(称为 .matches newline)以包含换行符。

有关详细说明,请参阅此问题的最佳答案:

Find CRLF in Notepad++

【讨论】:

    【解决方案4】:

    Cntrl+C 上面你要查找的文本和Cntrl+V 在 Notepad++ 中将它放入一个新的空白文档中,然后再次选择它并点击 Cntrl+F 。您将在“查找”字段中看到您的文本,其中带有制表符的空格作为换行符。不需要插件。

    【讨论】:

    • 在 Notepad++ 6.6.9 中确认。您可以在 Notepad++ 的“config.xml”文件中的&lt;FindHistory...&gt; 中的&lt;Find ...&gt; 部分检查实际搜索字符串。
    【解决方案5】:

    据我所知,Notepad++ 不支持多行正则表达式,因此您必须将每个换行符替换为操作系统的代表性换行符(很可能是\r\n)。详情请见Find CRLF in Notepad++

    【讨论】:

    • 问题是如果你将段落粘贴到搜索框中,你得到的只是'
    • 并非如此 - 您可以使用扩展搜索将所有 \r\ns 替换为一些未使用的字符(波浪号、竖线等),然后使用非扩展搜索将该字符替换为 @ 987654324@ 再次(非扩展 \r\n 不会创建新行)。瞧 - 搜索字符串。此外,您可以相当轻松地制作宏。
    【解决方案6】:

    我在相关主题上找到了以下主题:Multiline Regular Expression search and replace!

    建议你试试CTRL+R!

    【讨论】:

    • 尝试 CTRL + R 它似乎不起作用。不确定要选择哪些选项。
    • 我刚刚在我的机器上试了一下(notepad++ 5.8.6),我可以搜索一个多行的文本博客。也许运行旧版本?
    • 是的,我在 5.8.6 上,实际上刚刚更新到 .7,它有时似乎可以工作**,就像在 txt 文件的段落中一样,但在搜索代码块时似乎不喜欢之间的空白。也许这是我缺少的一个选项。
    • 刚刚意识到“选择”已被勾选,现在似乎可以工作了!谢谢!
    • 真正通过插件 Notepad++ 真正开始发光。很高兴为您提供帮助!
    【解决方案7】:

    仅当行结尾设置为 Unix 形式时,才能传递多行来搜索和替换字段。这可以通过 Edit>EOL Conversion>Unix

    完成

    然后您可以手动将多行段落复制到搜索字段。

    之后,只需通过 Edit>EOL Conversion>Windows

    将行尾转换回 Windows

    【讨论】:

    • 不错,不需要任何额外的插件
    【解决方案8】:

    对于 Notepad++ v5.8.7+,默认情况下没有安装用于 Unicode 的 TextFX 插件,因此要使用 CTRL+R,您需要安装 TextFX Characters plugin 带有插件管理器。

    【讨论】:

      【解决方案9】:

      有一个解决方法:
      将搜索模式更改为扩展并将“return-newline”替换为\r\n
      例如 &lt;?php\r\n $radio_buttons++;\r\n }\r\n?&gt;
      问题是你需要知道空白(上面没有显示)。

      也许正则表达式可以工作?

      【讨论】:

        【解决方案10】:

        查看 TextFX 菜单选项。看起来它支持多行搜索。

        【讨论】:

          猜你喜欢
          • 2017-08-09
          • 2016-07-01
          • 1970-01-01
          • 2014-07-18
          • 1970-01-01
          • 2013-08-20
          • 2016-10-07
          • 2013-03-06
          • 2019-02-10
          相关资源
          最近更新 更多