使用正则表达式在Notepad++中添加前缀和后缀

97

我有一个非常大的单词列表,存储在txt文件中。现在我需要在 Notepad++ 中进行正则表达式查找和替换操作。我需要在每行前后添加字符串,即:

wordone
wordtwo
wordthree

变成

able:"wordone"
able:"wordtwo"
able:"wordthree"

我该如何实现?


抱歉,这些单词字符串应该分别放在不同的行上!我敢打赌现在已经让事情更加混乱了... - zuk1
甜蜜的保存让我省了很多搜索 :) - melaos
5个回答

189

假设你使用由字母和数字组成的单词,你可以使用:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

或者,如果你只想突出显示这些行并使用“全部替换”和“在选定内容中替换”(使用相同的替换):

Search = ^(.+)$

^ 指向行的开头。
$ 指向行的结尾。

\1 将是括号内匹配的源字符串。


37

可以使用的正则表达式:

Find: \w.+
Replace: able:"$&"

当使用$&时,它将返回您搜索的字符串。

参考: regexr


7
提及 $& 真是太好了!\1 并不适用于所有环境。 - pfabri
关于 $& 的回答非常好。在 SublimeText 中也可以使用。 - WesternGun
关于 $& 的绝佳答案。在VS Code中也可以使用。 - P. Frank
关于$&的回答非常好。如果你像$1一样写它,它也适用于PHPStorm。 - Sliq

31

为什么不使用Notepad++的多行编辑功能呢?

按住Alt键并使用通常的点击拖动方法选择文本,以跨多行选择文本。有时也称之为列编辑。

您可以将光标放在文件开头,按下(并保持按住)Alt、Shift键,然后一直按下向下箭头或PageDown键,选择要在其前面添加一些文本的行即可 :-) 容易操作。多行编辑是Notepad++的一个非常有用的功能。在Visual Studio中也可以这样做,在Eclipse中通过按Alt+Shift+A切换到块选择模式,然后使用鼠标跨多行选择文本也可以实现。


1
+1 这真的很棒,我不知道你可以做到这一点。如果每行的长度不同,是否可以将某些内容附加到每行的末尾?例如,当“列”的宽度变化时,如果您可以在每行的末尾附加文本,则会更好。我有一个函数列表,需要在每行末尾添加“();”,但每个函数名称的宽度都不同。我目前正在使用宏来完成这项工作,感谢! - SSH This
5
对于添加内容,最好只使用“扩展”搜索模式下的简单查找/替换。您可以搜索行结尾符,例如\r\n,并将其替换为<您想添加的任何内容>\r\n - Peter Perháč
这实际上是一个非常好的解决方案,特别是有了上面的APPEND注释。 - Chuck Le Butt
2
这对于前缀很有用,但如果您想要在混合长度行后缀(附加到末尾),则不太有用。我希望Notepad++有一个内置的“修改行”命令,就像Notepad2中那样,它允许您选择行,按Alt+M,在每行之前和/或之后添加文本。 - thdoan

6

使用宏。

宏>开始录制

使用键盘以可重复的方式进行更改,例如:

home>type "able">end>down arrow>home

然后返回菜单,点击停止录制,然后多次运行宏。

这样应该就可以了,而且没有基于正则表达式的复杂性!


5
“Complications”指的是“并发症”的意思,通常指一种疾病或治疗产生的不良结果或意外情况。 - Tomalak
+1 便于使用!我需要在文件的每行末尾添加一个“制表符”,这个技巧解决了我的问题。 - NateJ

1
在Visual Studio Code中,我发现简单的正则表达式" ^ "有效。

这如何回答关于Notepad ++的问题? - Toto
@Toto 嗯,我个人也没有在谷歌上搜索记事本的答案。 - luky

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