29

有没有办法找到一个段落?

例如,我想搜索此代码:

<?php
    $radio_buttons++;
  }
?>

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

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

4

10 回答 10

54

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

工具桶截图
(来源:phdesign.com.au

于 2012-03-05T04:33:56.433 回答
23

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

只需选择要查找的文本,然后调用该选项... 多行查找/替换

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

  1. 最简单的一个:转到菜单选项Plugins > Plugin Manager > Show Plugin Manager,将可用插件列表滚动到“ TextFX Characters ”并安装它。 从插件管理器安装

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

重新启动 Notepad++ 后,您将看到菜单项TextFX

于 2011-04-15T06:19:08.220 回答
9

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

搜索您的代码将类似于

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

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

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

在记事本++中查找CRLF

于 2012-05-23T11:48:35.983 回答
6

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

于 2014-12-23T00:46:33.077 回答
4

据我所知,Notepad++ 不支持多行正则表达式,因此您必须通过使用操作系统的代表性换行符替换每个换行符来做到这一点(很可能\r\n)。有关详细信息,请参阅在 Notepad++中查找 CRLF。

于 2011-03-30T16:27:31.960 回答
3

我在相关主题上找到了以下线程:多行正则表达式搜索和替换!

建议你试试CTRL+R!

于 2011-03-30T16:33:50.890 回答
3

仅当行结尾设置为 Unix 形式时,才能将多行传递给搜索和替换字段。这可以通过编辑>EOL 转换>Unix来完成

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

之后,只需通过Edit>EOL Conversion>Windows 将行尾转换回 Windows

于 2018-10-31T13:15:27.437 回答
2

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

于 2012-02-17T08:11:45.130 回答
1

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

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

于 2011-03-30T16:31:37.357 回答
0

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

于 2011-04-05T13:24:02.903 回答