求助帖 多个名字替换
sigil吧
全部回复
仅看楼主
level 5
秦瑶 楼主
在sigil里面想要批量修改一些名字,就是一个段落里面,有俩个甚至更多个名字,我想保留这段话里面的第一个名字,其他的替换成她,问了豆包和deep seek都不行
2026年08月30日 17点08分 1
level 12
可以用calibre的编辑器里正则表达式函数实现
2026年08月31日 03点08分 2
1-20项需要全部写入吗
2026年08月31日 04点08分
整明白了多谢大佬,前面把代码放到css里面去了,难怪各种匹配不到[勉强]
2026年08月31日 05点08分
level 12
选正则表达式函数模式,右边进入创建窗口,全部复制进去,注意缩进。
import re
def replace_duplicate_names(text, names):
if not names:
return text
pattern = names[0]
seen = set()
def repl(match):
name = match.group()
if name in seen:
return names[1]
else:
seen.add(name)
return name
return re.sub(pattern, repl, text)
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
text = match.group()
names = ["小明","他"]
return replace_duplicate_names(text, names)
2026年08月31日 04点08分 3
多谢
2026年08月31日 07点08分
level 7
如果不想写Python的话你可以试试先将所有这个名字换成她,然后再用正则匹配每个<p>里的第一个她,将她替换成名字。
顺便麻烦把重复的标签删一下,禁止套娃。
2026年08月31日 06点08分 4
不会写正则[笑尿]都是找ai弄
2026年08月31日 07点08分
1