Notepad++正则表达式替换全部(行首和行尾)

16

我正在尝试使用"("替换行的开头。但是当我使用“replace all”时,我无法这样做。

例如:

432425\n
4254645\n
w4546746\n
46457367\n
4765756\n

我希望使用替换全部得到输出结果。因此,我使用了正则表达式选择符号^并进行替换。

仅使用替换功能也可以正常工作。

(432425\n
(4254645\n
(w4546746\n
(46457367\n
(4765756\n

是的,notepad++在这方面真的很愚蠢。希望他们能有人来解决这个问题,很烦人。 - bharal
此链接解释了Notepad++如何检测“行首”的位置:https://superuser.com/questions/146061/notepad-why-does-finding-not-work - Martin
7个回答

15

不是解决方案,而是一种解决办法:

您可以使用Notepad++的宏功能记录按键操作,然后重播到文件末尾,而不是使用正则表达式...

  1. 将光标放在第一行前面
  2. 开始录制
  3. 键入a (
  4. 按下键盘上的向下箭头和向左箭头
  5. 结束录制

回放到文件末尾

如果您不知道正则表达式,这种方法更容易。


@JD:我还没有尝试过这个。但是,它似乎是一个不错的方法。+1 - shahkalpesh

13

我不知道你为什么会遇到问题。

在Notepad++ v6.2中,以下内容对我有效:

Search -> Replace
Search Mode -> Regular expression
Find What: ^
Replace with: \(
Click Replace All

3
这是正确的答案。目前使用的是6.3.2版本,运行完美。 - bjtilley

12

一个解决方法:查找^(.) 并用 (\1 替换。

对我来说,这似乎是一个Notepad++的错误。


为了使此功能正常工作,搜索模式应该仅为正则表达式。 - Narendra Rawat

1
如果你正在使用notepad ++,不必费心正则表达式。
相反,使用扩展搜索模式将所有\n替换为(


1

这将在Notepad++中起作用:在执行替换步骤之前,首先将文本复制到记事本中,然后从记事本中复制文本到Notepad++中。

搜索 -> 替换 搜索模式 -> 正则表达式 查找内容:^ 替换为:( 点击全部替换


1
我没有足够的声望来添加评论...
@MrBones
替换"\n"也需要在“替换为”的开头加上"\n",这样文件仍然保留\n而不是只有"\r"。
因此,在Notepad++中:
查找内容:\n 替换为:\n(

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接