NotePad ++-为什么查找^不起作用?


16

我试图摆脱TextPad,而我却无法获得正则表达式,^$无法将其替换。我肯定打勾了正则表达式框。

我究竟做错了什么?

我正在尝试寻找新生产线的起点。在TextPad中,找到“ ^”并确保启用了正则表达式。使用记事本++不能做到这一点。它只是说“未找到”。


我使用了TextPad,发现这个问题很烦人(说得有点客气)。基本上,Npp的Regex功能与其他大多数Regex-s搭配使用时会受到阻碍。这是因为Npp是Scintilla Editor 的抽象,它使用基于单行的RegEx :(-Npp团队非常了解此问题,但是(很奇怪)它一直处于落后状态(时间和资源问题)。$确实可以工作,但是它们还没有^可用于多行工作(还)。我知道这个限制,可以使用(并引起)。如下所述^(。)可以工作(很少,我恢复为TPad或UltraEdit)
Peter.O,2010年

1
PS。您通常可以将Extended(vs RegEx)用作\ r和\ n的解决方法-这是半模仿行的开头。另外,作为一种顺便,您可以继续在普通搜索中启用“视图-显示符号-显示行尾”。尽管它们(在视觉上)没有出现在“查找”字段中,但如果您选择首先,按CRLF,当您按CTRL + F时,Find-field自动启动启动,并且很高兴地成为多行(但不是RegEx)搜索。它与扩展搜索没有太大区别,但我发现它很有趣,有些读者可能也是如此。(我爱Npp :)
Peter.O 2010年

您为什么要尝试寻找新行的起点?您要在每行的开头添加一些内容吗?那将帮助我们实际回答这个问题。如果要使用Notepad ++远离付费解决方案,则必须学习其怪癖并解决它们。我这样做没有问题,因为Notepad ++在许多其他方面都非常出色。
Joshua Nurczyk '16

Answers:


25

^和$都是Regex的锚点,这意味着如果要替换文字字符^,则$需要转义它们,通常使用前导反斜杠(\^\$)。

要查找一行上的第一个字符,请使用 ^.

起始行锚(^)为零宽度匹配,因此将其与组合在一起。将在一行的开头找到任何字符。

也许您可以解释您实际上要做什么?


8

因为这些是特殊字符,它们表示行的开头(^)和行尾($)。尝试使用\

例子:

在行首匹配“ Cat”:

^Cat

在行尾匹配“猫”:

Cat$

将“猫”匹配为一行上的唯一内容:

^Cat$

在一行中匹配一个“ $ 100”:

\$100 

是有关Notepad ++中正则表达式匹配的详细信息的链接。


2
链接似乎(有效)断开。
彼得·莫滕森

5

我本人也遇到过同样的问题。经过反复试验,您可以通过执行以下操作来实现相同目的:

查找:^(。)

更换: [您希望插入的字符串] \ 1

要做的是找到并标记该行的第一个字符,放入新字符串,然后将标记的字符放在其后。

例如,我需要在每一行的开头插入一个单引号:

找: ^(。)

更换: '\ 1

您可以通过执行以下操作来完成该行的结尾:

找: (。)$

替换:\ 1 * [您要附加的字符串] *


1

我知道了。

之前

  • Albert@hotmail.com
  • Lucas@gmail.com
  • Rober_Klein@aol.com
  • Fisher@zmail.com

  • 阿尔伯特
  • 卢卡斯
  • 罗伯·克莱因
  • 费舍尔

删除字符或文字后

@(。*)$

删除字符或文本之前

^(。*)@

dot = any character
asterisk = zero or more times

1

这是怎么做的...

之前:

$_GET['id']; $_GET['nick'];

后:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

所以。在查找字段上输入:

$_GET(.*])

替换字段上输入:

htmlentities($_GET\1)

0

这个问题现在似乎已经解决。

在Notepad ++ v6.9.2(在Windows 7下运行)中,我^(行首)和$(行尾)都可以使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.