编辑文本时如何同时匹配多个关键字并进行替换?

近期在编辑txt文本,里面有些人名要进行替换变更,因为角色众多逐个替换觉得工作量比较大,咨询一下各位有没有Notepad++高手,或者其他曲线救国的方式提供一下,谢谢哈

补充一下,例如文本中有名字是张三和李四,同时查找替换为张三变成张四 李三改为李四 这样同时变动

推荐这个编辑器,有这个功能

http://nullice.com/Gasoft/Siphonink/Help/fmap.html#_批量替换

通过你举的例子,是否同时替换是不重要的,因为它们本来就不会互相干扰。
多次替换即可

根据你的需求,手搓一个小工具,正版易语言编写,如被360等误报,自行决定是否使用。
image

链接: 百度网盘 请输入提取码 提取码: m86i

用10M大小的文本文件测试,处理速度大概是(1)秒级的,更大的没试。

多次替换确实可以,但是我的目的就是要懒嘛,哈哈哈


按了开始替换后在重新打开 文本,里面的内容完全没有改变,我是不是操作错误了?

惭愧,忘了关调试模式了。我改一下,抱歉。
链接: 百度网盘 请输入提取码

实在太感谢你百忙抽空写个软件,不知道可否让我提取一些建议


实测,已经能够处理到情况了,到时有些小建议,能否添加个模糊匹配和全匹配,像啊啊啊这个文本,按实际应用的话应该不改,当然,只是建议,请收下我的膝盖

谢谢你的推荐,已经有高人写了软件再次感谢你的回复

这种文本替换中的模糊匹配,说起来貌似简单,其实是非常非常难以做到的。因为需要“模糊”的场景太多了,太复杂了。您举得例子比较简单,看我举个例子:
这样一段文本“张三笑呵呵一笑,轻而易举的把张三推开一边”。这里一个人叫“张三笑”,一个人叫“张三”,现在要替换“张三”的话,那么除了人工判读,目前还没有代码可以做到跳过“张三笑”。什么AI都不行。

1 个赞

支持正则表达式就好多了吧

也不行的,正则并不能代替人脑,判断出“张三笑”并不是“张三”笑

通过 vim 的文本正则替换

给出文本:

a b c d

目标: 将所有的 a 或 b 都替换为 e

vim 替换命令:

:%s/a\|b/e/g

先说下匹配多个关键词,如匹配 a 或 b,对应的就是 a|b,在 vim 中,要对 | 做转义,所以替换目标要使用 a\|b

要对整个文件中的某个关键词做替换,要使用 :%s,所以是 :%s/a\|\b/e,但是这个只替换一次。要替换所有,在最后加上 /g

最后的命令是 :%s/a\|b/e/g

替换后的文本:

e e c d

Animation2

大佬你这个是不是 linux 系统的命令,我是windows鸭

windows 也可以装的

什么软件可以可以运行这个命令?

看你那么久还没找到解决方案,你可以试试去52PJ看看,小说角色更名器 V1.1.3,介绍地址 https://www.52pojie.cn/thread-1577454-1-1.html
下载地址:https://wwx.lanzoux.com/b01hxwx9g 密码:gcf2

纯回复,没有其他的宣传意思。

这个软件就叫 Vim,但我估计能这样问的话,大概这个方向探索起来难度有点大。

用 JS 我倒是可以给你写个脚本,但如果文件比较大,肯定还是用 Node.js 比较好,,这又涉及到安装环境了。

以及就像 #11 所说,模糊匹配可能遇到的问题太复杂了。所以,基本也就这样了。或者自己开发……

没事儿,大可放心,只要不是重复刷一类内容的,一般我们都不介意。

但问题还是 #11 中讲到的问题,目前基本无解。

好吧,还是简单的事情简单处理吧,谢谢各位