最近下载了一本轻小说生肉,因为日语太菜,看不懂,打算把它丢去机翻。
原文是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

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

  1. python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...

    python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...

  2. 用正则表达式替换html标签,在SQL中用正则表达式替换html标签

    由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都替换掉.当然我可以通过写一个程序去修改,那毕竟有点麻烦.直接在查询分析器中执行,但是MS SQL Server并没有 ...

  3. python使用正则表达式去除句子中的重复词

    python使用正则表达式去除句子中的重复词 #python使用正则表达式去除句子中的重复词 # Python program to remove duplicate words # using Re ...

  4. python文本筛选html_Python使用正则表达式去除(过滤)HTML标签提取文字功能

    正则表达式是一个特殊的字符序列,可以帮助您使用模式中保留的专门语法来匹配或查找其他字符串或字符串集. 正则表达式在UNIX世界中被广泛使用. 下面给大家介绍下Python使用正则表达式去除(过滤)HT ...

  5. python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...

    # -*- coding: utf-8-*- import re ##过滤HTML中的标签 #将HTML中标签等信息去掉 #@param htmlstr HTML字符串. def filter_tag ...

  6. 正则表达式去除括号的问题

    正则表达式去除括号的问题 某字符串 aaa(bbb)cccddd 需求是要判断是否包含 aaa(bbb),如果包含,那就去掉(bbb),输出aaacccddd 我们先使用正则表达式: String c ...

  7. python正则去掉重复单词_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 | 学步园...

    在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下: input:我今天 赚了 10 个亿,老百姓very happ ...

  8. python正则表达式匹配括号并删除_正则表达式去除中括号(符号)及里面包含的内容...

    例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace("/\[.*\]/", '', $str)1 处理后效果:颜色:粉色 尺码:S 小技巧:可把 ...

  9. 使用正则表达式去除斜杆(\)

    使用正则表达式去除斜杆(\),代码如下,记得斜杆是有两个的哦 import re text = "hahah\h\h\h\h" x = re.sub(r'\\',"&qu ...

最新文章

  1. Codevs 1005 生日礼物
  2. jsp页面传递参数是如何与javabean进行关联的
  3. Java版的开源 Flappy Bird 复刻项目
  4. Leetcode-单调数列(896)
  5. C#3.0扩展方法[转]
  6. linux命令:mkdir 命令详解
  7. P3308-[SDOI2014]LIS【最小割】
  8. 【云服务】云服务案例分析Quiz
  9. sqlite journal恢复数据_数据库是咋工作的?
  10. python画超长图-Python 拼接多张尺寸大小不一样的图片制作长图
  11. acm杭州电子科技大学新生赛
  12. DEPHI XE5 XE6 ANDROID IOS开发的几点体会
  13. 私藏的18个黑科技网站,想找什么软件就找什么软件!!!
  14. 【青梅快讯】迅速迭代,Greenplum6为你带来持续惊喜
  15. 调剂深圳大学计算机技术,深圳大学:2020年硕士研究生招生调剂办法公告
  16. Windows平台通过CMD查询域名的Whois信息
  17. python md5解密方法与技巧_python ---- 爬取 md5解密结果 的小脚本
  18. android国外壁纸app,4K Wallpapers,火遍全球的4K高清壁纸App,谷歌市场1300万好评!...
  19. QT编写USB PRINTER驱动
  20. 【Django】admin.ModelAdmin的源码-20220105

热门文章

  1. Google VR cardboard开发01
  2. 懒人的七种超级减肥方法 - 健康程序员,至尚生活!
  3. linux运行frpc,frpc客户端使用教程(此方法支持所有主流的Linux系统)
  4. Web APIs五、BOM操作浏览器
  5. 三层交换机和二层交换机的区别 三层交换机和路由器的区别
  6. Hybrid APP 混合开发模式简介
  7. 决策引擎系统 实时指标计算 风险态势感知系统 风险数据名单体系 欺诈情报体系
  8. 【genius_platform软件平台开发】第三十七讲:网卡混杂模式和原始套接字
  9. Nginx安全防范配置
  10. 又一软件开发商面临破产,背后原因尽然是这个