在Calibre中用正则表达式去除日文的注音(振假名)

最近下载了一本轻小说生肉,因为日语太菜,看不懂,打算把它丢去机翻。
原文是AZW3,打算先用Calibre转成txt文档再进行翻译。

注释的原理:ruby标签

日语轻小说中含有大量的注音(也叫振假名,日语为「仮名がな」;或Ruby,日语为「ルビー」),比如说:


林道を抜け、緩やかな丘陵きゅうりょうに出ると、山賊討伐を任された《七光しちこう騎士きしだん》の視界前方に、青空にそびえる石造りの古城が現れる。


这段话中含有几处注音,在AZW3中,这些注音假名是通过HTML5的新标签ruby实现的:

<ruby><rb>丘陵</rb><rt>きゅうりょう</rt></ruby>
<ruby><rb>七光</rb><rt>しちこう</rt></ruby>
<ruby><rb>騎士</rb><rt>きし</rt></ruby>
<ruby><rb></rb><rt>だん</rt></ruby>
<ruby><rb></rb><rt>そび</rt></ruby>

如果要把文章丢进翻译器,我们不希望注音和文章混在一起,需要去除注音。

Calibre转换遇到的问题

如果我们不做修改直接,直接用Calibre对文章进行转换,会得到:

林道を抜け、緩やかな丘陵きゅうりょうに出ると、山賊討伐を任された《七光しちこう騎士きし団だん》の視界前方に、青空に聳そびえる石造りの古城が現れる。

可以注意到,Calibre直接删除了标签,导致振假名混在了文段中,如「丘陵きゅうりょう」,「七光しちこう騎士きし団だん」,这对我们阅读造成了影响,也对翻译效果造成了影响。
所以,我们有必要在翻译前将文档预处理,去除其中的注释。

用正则表达式去除注音

上面已经提过了注音的结构,我们可以用正则表达式对文章中含有此类结构的注音进行去除。
注意到注音的结构均为:

<ruby><rb>被注音文字</rb><rt>注音</rt></ruby>

因此我们用正则表达式检测此类结构,仅需将其中被注音的文字和注音换成任意字符:

<ruby><rb>(.*?)</rb><rt>.*?</rt></ruby>

其中.*表示任意字符,增加符号?使其非贪婪。因为我们要保留被注释文字,所以用小括号扩起被注释部分,小括号相当于一个变量,可以在替换时被重新引用。
在Calibre转换书籍时,在“搜索&替换”中,将上述表达式输入,并在替换文本中输入\1(表示我们前面那个小括号中的文本,即被注音文字)
在这里插入图片描述
这样在转换过程中,出现的注音就会被替换了。

效果

使用正则表达式转换的文段:

林道を抜け、緩やかな丘陵に出ると、山賊討伐を任された《七光騎士団》の視界前方に、青空に聳える石造りの古城が現れる。

可以看到,其中的振假名已经去除,基本符合了我们的要求。这样我们就可以把它扔到翻译器里愉快地看机翻啦~

新人第一次发帖,请大家多多包涵 QwQ

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值