近期在编辑txt文本,里面有些人名要进行替换变更,因为角色众多逐个替换觉得工作量比较大,咨询一下各位有没有Notepad++高手,或者其他曲线救国的方式提供一下,谢谢哈
补充一下,例如文本中有名字是张三和李四,同时查找替换为张三变成张四 李三改为李四 这样同时变动
推荐这个编辑器,有这个功能
通过你举的例子,是否同时替换是不重要的,因为它们本来就不会互相干扰。
多次替换即可
根据你的需求,手搓一个小工具,正版易语言编写,如被360等误报,自行决定是否使用。
链接: https://pan.baidu.com/s/1GNIKNBhMXcaaDXZbKclj-Q?pwd=m86i 提取码: m86i
用10M大小的文本文件测试,处理速度大概是(1)秒级的,更大的没试。
多次替换确实可以,但是我的目的就是要懒嘛,哈哈哈
惭愧,忘了关调试模式了。我改一下,抱歉。
链接: https://pan.baidu.com/s/1GNIKNBhMXcaaDXZbKclj-Q?pwd=m86i
实在太感谢你百忙抽空写个软件,不知道可否让我提取一些建议
实测,已经能够处理到情况了,到时有些小建议,能否添加个模糊匹配和全匹配,像啊啊啊这个文本,按实际应用的话应该不改,当然,只是建议,请收下我的膝盖
谢谢你的推荐,已经有高人写了软件再次感谢你的回复
这种文本替换中的模糊匹配,说起来貌似简单,其实是非常非常难以做到的。因为需要“模糊”的场景太多了,太复杂了。您举得例子比较简单,看我举个例子:
这样一段文本“张三笑呵呵一笑,轻而易举的把张三推开一边”。这里一个人叫“张三笑”,一个人叫“张三”,现在要替换“张三”的话,那么除了人工判读,目前还没有代码可以做到跳过“张三笑”。什么AI都不行。
支持正则表达式就好多了吧
也不行的,正则并不能代替人脑,判断出“张三笑”并不是“张三”笑
通过 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
大佬你这个是不是 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 中讲到的问题,目前基本无解。
好吧,还是简单的事情简单处理吧,谢谢各位