最近下载了一本轻小说生肉,因为日语太菜,看不懂,打算把它丢去机翻。
原文是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. python中文读音ndarray-numpy中的ndarray方法和属性详解
  2. 从传统运维到云运维演进历程之软件定义存储(五)下
  3. 睡袋放置_第一次露营要带上什么?帐篷、睡袋怎么挑、怎么买?新手入门攻略...
  4. python基础之----函数
  5. jee web_您基于JEE的Web项目的结构是什么?
  6. 谈谈NLP下一个主战场:万亿参数的预训练模型!
  7. linkbot 中文教程系列 linkbot破解教程
  8. No.3 - CSS transition 和 CSS transform 配合制作动画
  9. 阿里云 linux 挂载数据盘
  10. 【航模】凤凰模拟器安装
  11. Java注释 及 标识符
  12. SAP ERP和ORACLE ERP的区别是哪些?
  13. 获取企业微信code
  14. dev c++缺省源
  15. [数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念
  16. 那些漂亮有创意的思维导图真的更吸引人吗?
  17. 计算机论文致谢词范文500字,论文致谢词范文500字(精选5篇)
  18. 数据结构课设(散列表的设计与实现---电话号码查找系统)
  19. Mysql学习总结十二:系统变量、用户变量、定义条件和处理程序
  20. 【数据处理】matlibplot绘图颜色对照表

热门文章

  1. java计算加班费的程序代码_17.编程题:计算加班费、卖东西、日期提取、线程、数字、网络、数据库...
  2. ES006-Elasticsearch-JAVA客户端
  3. 办公软件word在任一页开始设置页码
  4. 智能家居控制系统中的智能语音识别技术
  5. http://click.aliyun.com/m/20492/ DT科技评论第37期:Cato_Network将会重新定义下一代网络以及安全
  6. 未来10年,这8个新行业最吃香!!!
  7. Server.HTMLEncode用法
  8. SQL注入原理及其简单演示
  9. 安装suds报错,ImportError: No module named client
  10. 该怎么设置邮箱服务器?