舍得英语魔法学苑

 找回密码
 注册
查看: 10388|回复: 45

[UX] 优仕新概念源文本处理之 短语篇(正则表达式教程)

[复制链接]
  • TA的每日心情
    开心
    2013-3-28 19:15
  • 签到天数: 41 天

    [LV.5]常住居民I

    xsqxsy 发表于 2013-4-28 20:39:43 | 显示全部楼层 |阅读模式
    本帖最后由 xsqxsy 于 2013-4-29 21:54 编辑

             优仕新概念系列多媒体软件,包括新概念第一册、第二册、第三册,共22张光盘。而每一册又包括单词、短语、句型、对话等教学内容。今天先为大家介绍怎样利用emeditor中的正则表达式,把这套教材中的短语部分制作成supermemo的制表符文本,然后再用它来制作supermemo课件。





            在制作开始之前,先得介绍一个emeditor关于正则表达式中容易被人们忽视的细节。
            在emeditor的正则表达式中,默认情况下,.号匹配除换行符\n 之外的任何单个字符,但是在emeditor的设置中也可以让它同时匹配换行符\n 。具体的设置方法见下图。而我们的这个教程也需要.号同时匹配换行符\n ,所以请各位朋友在查看本教程之前先照下图进行一下设置,再继续往下看。
           在emeditor的正则表达式中,.号匹配换行符\n后的表达式[^\n]*?.号未匹配换行符\n时的表达式.*?的效果是完全一致的。







    优仕新概念系列多媒体软件中短语部分的源文本如下图1,处理后的制表符文本如下图2.







    制作过程如下:

    说明:通常情况下,在emeditor中.号不匹配换行符。以下正则表达式则需要.号同时匹配换行符。所以使用正则表达式之前请先进行如下操作:
    工具-->自定义-->搜索中 把在使用正则表达式进行搜索时可以使用符号"."匹配换行符的选项打上对钩,并且把下面的正则表达式"."可匹配换行符的行数调大。比如1000行。

    1、只保留短语部分:
    查找:^&\s{0,3}~C~P000000choose.*?(^&\s{0,3}~C~P000000dy)|^&\s{0,3}~C~P000000jx.*?(^@)
    替换:\1\2
    备注:只进行一次替换。

    2、去除上一页、下一页的行:
    查找:^\s*~N.*?\n
    替换:
    备注:只进行一次。

    3、去掉索引行,例如:& ~C~P000000dy.等:
    查找:^&\s*~C~P000000dy.*?\n
    替换:
    备注:只进行一次

    4、把短语项挑选出来,并以%开头作为标记。
    查找:^\s*$\n^~
    替换:%~
    备注:只进行一次。

    5、去除多余的空行:
    查找:^\s*$\n
    替换:
    备注:只进行一次。

    6、去掉以%或~或@开头的行的行首空格:
    (以%或~或@开头的行的行首若没有空格此步骤可省略)
    查找:^\s*([%~@])
    替换:\1
    备注:只进行一次。

    7、把中文解释行合并到上一英文行,并且分离同行内的中英文:
    查找:(^[~%].*?)\s+([[:unicode:]].*?\n|"[[:unicode:]].*?\n)
    替换:\1\t\2
    备注:只进行一次

    特别备注:此条对于符合条件的一行英文和一行中文的情况,竟然能合并在一行中。也就是说\1所代表的(^[~%].*?)中的换行符\n在替换后竟然没有了。有知道原因者,请跟贴说明。

    以上七条只进行一次,可以录制成宏,以方便处理多个类似文本。

    8、把多行中文解释行合并:
    查找:(^[~%].*?)\n\s*([[:unicode:]]|"[[:unicode:]])
    替换:\1\2
    备注:要进行多次。

    9、合并多行英文:
    查找:(^[~%].*?)\n^\s+(.*?)
    替换:\1 \2
    备注:要进行多次。

    10、把同一词条的所有内容放入同一行:
    查找:(^%.*?)\n(^~.*?)
    替换:\1\t\2
    备注:要多次替换。

    以上三条要进行多次替换,最低要重复5次。

    11、分离词条的音频代码:
    查找:~S(.*?)\.(.*?)
    替换:\1\t\2
    备注:只进行一次。

    12、处理行号:
    查找:^@L(\d+).*?\n^%
    替换:第\1课\t
    备注:只进行一次。

    以上两条只进行一次。

    13、逐行处理行号:
    查找:^((第\d+课)[^\n]*?\n)^%
    替换:\1\2\t
    备注:此步要进行多次,直到全部完成为止。

    14、去掉制表符后的空格:
    查找:\t\s+
    替换:\t
    备注:只进行一次。

    15、去除一些无用的符号和行:
    查找:^([^\n]*?)\n^@\n*
    替换:\1
    备注:只进行一次。

    16、把一位数的课程规范到三位数:
    查找:^第(\d)课
    替换:第00\1课
    备注:只进行一次

    17、把两位数的课程规范到三位数:
    查找:^第(\d{2})课
    替换:第0\1课
    备注:只进行一次





    到此为止,用emeditor处理源文本就结束了。但所得到的制表符文本还是不能直接用作supermemo课件的制作,后续的处理请查看此系列的第二篇教程《优仕新概念源文本处理之 短语篇(excel教程)》






    优仕新概念之短语部分源文本 样本下载如下:
    游客,如果您要查看本帖隐藏内容请回复
    处理后的制表符文本 样本下载如下:
    游客,如果您要查看本帖隐藏内容请回复
    整个过程录制的宏 下载如下:
    游客,如果您要查看本帖隐藏内容请回复






    另外也想问一下,正则表达式是否具有计算的功能,如果有的话,就可以直接给文本加上行号了。有知道者请跟贴告知。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    本帖被以下淘专辑推荐:

  • TA的每日心情

    2018-2-11 04:34
  • 签到天数: 68 天

    [LV.6]常住居民II

    山西老陈醋520 发表于 2013-4-28 20:40:55 | 显示全部楼层
    顶楼主,很实用的帖子
  • TA的每日心情
    开心
    2013-3-28 19:15
  • 签到天数: 41 天

    [LV.5]常住居民I

     楼主| xsqxsy 发表于 2013-4-28 20:42:52 | 显示全部楼层
    山西老陈醋520 发表于 2013-4-28 20:40
    顶楼主,很实用的帖子

    呵呵,你可够快的啊,我还没编辑完贴子呢。
  • TA的每日心情

    2018-2-11 04:34
  • 签到天数: 68 天

    [LV.6]常住居民II

    山西老陈醋520 发表于 2013-4-28 20:43:46 | 显示全部楼层
    xsqxsy 发表于 2013-4-28 20:42
    呵呵,你可够快的啊,我还没编辑完贴子呢。

    哈哈哈,抢您的沙发无限光荣
  • TA的每日心情
    郁闷
    2015-10-22 09:48
  • 签到天数: 260 天

    [LV.8]以坛为家I

    xukun 发表于 2013-4-28 21:16:44 | 显示全部楼层
    有点屌
    [发帖际遇]: xukun 捡了钱没交公 声望 降了 1 点 . 幸运榜 / 衰神榜
  • TA的每日心情
    开心
    2018-9-8 22:13
  • 签到天数: 158 天

    [LV.7]常住居民III

    victor8163 发表于 2013-4-28 22:22:07 | 显示全部楼层
    学习下,这种复杂的正则表达式还没接触过
    [发帖际遇]: victor8163 在网吧通宵,花了 2 颗 魔晶石. 幸运榜 / 衰神榜
  • TA的每日心情
    擦汗
    2017-8-22 09:17
  • 签到天数: 1360 天

    [LV.10]以坛为家III

    qfswordman 发表于 2013-4-29 07:16:24 | 显示全部楼层
    精华帖啊
    [发帖际遇]: qfswordman 被钱袋砸中进医院,看病花了 4 颗 魔晶石. 幸运榜 / 衰神榜
  • TA的每日心情
    难过
    2015-9-13 11:19
  • 签到天数: 389 天

    [LV.9]以坛为家II

    hayven 发表于 2013-4-29 08:17:21 | 显示全部楼层
    不错的教程,看看学习一下
    [发帖际遇]: hayven 乐于助人,奖励 8 分 学分. 幸运榜 / 衰神榜
  • TA的每日心情
    奋斗
    2017-12-15 22:00
  • 签到天数: 257 天

    [LV.8]以坛为家I

    7shi2bian 发表于 2013-4-29 13:31:52 | 显示全部楼层
    呵呵,我的正则可以出师了,但还来看看,参考参考!
  • TA的每日心情
    奋斗
    2013-6-7 12:51
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    nba2012 发表于 2013-4-29 20:12:08 | 显示全部楼层
    仕新概念源文本处理之 短
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|手机版|Archiver|官方微博|官方QQ群|舍得英语魔法学苑 ( 冀ICP备11024081号-1 )

    GMT+8, 2018-10-24 00:41 , Processed in 0.162009 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表