You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式移除单词内部的连字符'-'?

解决Calibre转换EPUB时跨页断词连字符的问题

我太懂这种烦躁了——Calibre转PDF到EPUB的效果确实惊艳,但那些跨页断开的单词中间插着的'-',真的太破坏阅读流畅感了。你已经找对了核心方向,接下来只要用正则捕获组就能精准保留前后字母、只删掉碍事的连字符。

具体实现方案

1. 精准匹配的正则表达式

你之前用的[A-z]-[A-z]有个小坑:[A-z]的范围会包含[、]这类非字母符号,换成更精准的匹配更稳妥:

  • 针对英文单词:([A-Za-z])-([A-Za-z])
  • 如果需要支持带重音的多语言单词:(\p{L})-(\p{L})(\p{L}匹配任意Unicode字母)

2. 替换规则(核心!)

我们的目标是保留连字符前后的字母,只移除中间的'-',所以用捕获组反向引用:
在Calibre的工具里,直接把替换内容设为$1$2——意思是把第一个捕获到的字母($1)和第二个捕获到的字母($2)拼接起来,跳过中间的'-'。

3. Calibre里的实操步骤

打开转换好的EPUB,进入Calibre内置编辑器:

  • 按Ctrl+H(Mac按Cmd+H)调出「查找替换」面板
  • 勾选「使用正则表达式」选项
  • 「查找」框输入:([A-Za-z])-([A-Za-z])
  • 「替换为」框输入:$1$2
  • 先点「查找下一个」确认匹配的都是跨页断词的连字符,再点「全部替换」就大功告成

效果示例

原本的断词:

exam-ple
cal-bre
soft-ware

替换后直接变成:

example
calbre
software

这个方案只会处理单词内部的连字符,不会误删复合词(比如mother-in-law)里的功能性连字符——当然如果你的PDF里复合词本来就有跨页断词的情况,可能需要更复杂的规则,但绝大多数场景下这个方法足够好用。

内容的提问来源于stack exchange,提问作者Chicko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 16:17:48