舍得英语魔法学苑

 找回密码
 注册
查看: 248|回复: 9

[UX] 求助:如何修改他人的课程快速完成Q A的互换

[复制链接]
  • TA的每日心情
    难过
    3 天前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    贵树云野 发表于 2017-5-14 08:28:50 | 显示全部楼层 |阅读模式
    本帖最后由 贵树云野 于 2017-5-15 08:10 编辑

    需求描述:想做一个托福课程,但是托福不仅仅是阅读,而且也有听力,那么我的想法是,针对同一张单词表,

    目标状态:
    那么一个课程是以词形为问题,以词义为答案:
            Q:abandon
            A:抛弃;放弃

    那么另一个课程是以词的读音为问题,词形和词义为答案:
            Q:abandon的读音
            A:abandon单词和词义

    初始状态:
    只有一张简单的单词表


    解决思路:
    转换精灵有QA互换功能,可以利用,但是前提是你要有这张最初的单词表源文件

    问题衍生:
    很多情况下,是没有源文件,只有别人已经生成的课程(希望以后共享成果不能只上传课程还要上传源文件……),这个似乎只有改xml文件了(具体怎么实现?)


    希望有人一起讨论解决^^



    本帖子中包含更多资源

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

    x
  • TA的每日心情
    难过
    前天 09:42
  • 签到天数: 1047 天

    [LV.10]以坛为家III

    sheward 发表于 2017-5-23 16:40:36 | 显示全部楼层
    本帖最后由 sheward 于 2017-5-23 17:13 编辑

    比如原代码:
      <question><gfx file='20120305_23_01_42_972' float='right' scale-base='1024' />Even today,the human race continues to <b><i>evolve</i></b> - or maybe devolve.</question>
      <question-audio>true</question-audio>
      <answer><sfx file="evolve" />evolve<br/>【释义】  v.使进化;使发展</answer>

    第1个正则表达式
    (<question><.*?>)(.*?)(</question>)\n(.*)\n(  <answer><.* />)(.*<br/>)(.*)
    \1\6\3\n\4\n\5\2<br/>\7


    变成了(作用:交换QA)
      <question><gfx file='20120305_23_01_42_972' float='right' scale-base='1024' />evolve<br/></question>
      <question-audio>true</question-audio>
      <answer><sfx file="evolve" />Even today,the human race continues to <b><i>evolve</i></b> - or maybe devolve.<br/>【释义】  v.使进化;使发展</answer>


    第2个正则表达式
    (<question><.*?>)(.*?)(</question>)\n(.*)\n(  <answer>)(<.* />)(.*<br/>)(.*)
    \1\6\2\3\n\4\n\5\7\8\n  <answer-audio>true</answer-audio>


    变成了(将原答案的发音改成问题发音、加入答案自动发音):
      <question><gfx file='20120305_23_01_42_972' float='right' scale-base='1024' /><sfx file="evolve" />evolve<br/></question>
      <question-audio>true</question-audio>
      <answer>Even today,the human race continues to <b><i>evolve</i></b> - or maybe devolve.<br/>【释义】  v.使进化;使发展</answer>
      <answer-audio>true</answer-audio>


    第3步,删除这一行“  <question-audio>true</question-audio>”,即不需要问题自动发音
    这一步原本可以在第一步就去除的,但是当时没有想好。


    第4个正则表达式
    (<question>)(<gf.*?>)(<sf.*?>)(.*)(<br/.*>)\n(  <answer>)(.*>)(【.*>)
    \1\3\4\5\n\6\2\7<br/>\4\<br/>\8


    变成了(将原问题的提示图片改成答案图片):
      <question><sfx file="evolve" />evolve<br/></question>
      <answer><gfx file='20120305_23_01_42_972' float='right' scale-base='1024' />Even today,the human race continues to <b><i>evolve</i></b> - or maybe devolve.<br/><br/>evolve<br/>【释义】  v.使进化;使发展</answer>
      <answer-audio>true</answer-audio>

    高手也许可以一个正则表达式就完成,但是我只能分步进行。
    [发帖际遇]: sheward 发帖时在路边捡到 5 颗 魔晶石,偷偷放进了口袋. 幸运榜 / 衰神榜
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    难过
    前天 09:42
  • 签到天数: 1047 天

    [LV.10]以坛为家III

    sheward 发表于 2017-5-22 11:51:41 | 显示全部楼层
    本帖最后由 sheward 于 2017-5-22 11:56 编辑

    已经制作完成的,可以用Emeditor正则表达式批量修改xml。我以前也改过,比如:
    (<question><.*?>)(.*?)(</question>)\n(.*)\n(  <answer><.* />)(.*<br/>)(.*)
    \1\6\3\n\4\n\5\2<br/>\7

    下面这个是将问题的“发音” 改成 “答案”发音“
    (<question>)(<gf.*?>)(<sf.*?>)(.*)(<br/.*>)\n(  <answer>)(.*>)(【.*>)
    \1\3\4\5\n\6\2\7<br/>\4\<br/>\8

    改的课程是:
    http://bbs.emagic.org.cn/forum.p ... &fromuid=493906
    [发帖际遇]: sheward 发帖时在路边捡到 1 颗 魔晶石,偷偷放进了口袋. 幸运榜 / 衰神榜
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 15:06
  • 签到天数: 239 天

    [LV.7]常住居民III

    Sins 发表于 2017-5-19 22:35:48 | 显示全部楼层
    你把词表发上来,我可以帮你把课件制作出来
  • TA的每日心情
    难过
    3 天前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

     楼主| 贵树云野 发表于 2017-5-20 09:59:08 | 显示全部楼层
    Sins 发表于 2017-5-19 22:35
    你把词表发上来,我可以帮你把课件制作出来

    那个能教我做么……因为只是举个例子,很多情况下我都希望实现QA互换,而且是对已有课程。

    以前用过很多现成的课程,我就希望把语音和句子颠倒过来,有个大神说在xml文件里面用正则表达式来做……纠结

    有空一起交流啊
    [发帖际遇]: 贵树云野 捡了钱没交公 声望 降了 1 点 . 幸运榜 / 衰神榜
  • TA的每日心情
    慵懒
    昨天 15:06
  • 签到天数: 239 天

    [LV.7]常住居民III

    Sins 发表于 2017-5-22 09:47:51 | 显示全部楼层
    贵树云野 发表于 2017-5-20 09:59
    那个能教我做么……因为只是举个例子,很多情况下我都希望实现QA互换,而且是对已有课程。

    以前用过很多 ...

    转换精灵有按键可以直接互换QA,不需要涉及正则表达式
  • TA的每日心情
    慵懒
    昨天 15:06
  • 签到天数: 239 天

    [LV.7]常住居民III

    Sins 发表于 2017-5-22 09:48:13 | 显示全部楼层
    贵树云野 发表于 2017-5-20 09:59
    那个能教我做么……因为只是举个例子,很多情况下我都希望实现QA互换,而且是对已有课程。

    以前用过很多 ...

    转换精灵有按键可以直接互换QA,不需要涉及正则表达式
  • TA的每日心情
    难过
    3 天前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

     楼主| 贵树云野 发表于 2017-5-23 10:46:03 | 显示全部楼层
    sheward 发表于 2017-5-22 11:51
    已经制作完成的,可以用Emeditor正则表达式批量修改xml。我以前也改过,比如:
    ()(.*?)()\n(.*)\n(  )(.*)( ...

    谢谢!我试试。
  • TA的每日心情
    难过
    3 天前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

     楼主| 贵树云野 发表于 2017-5-23 10:46:46 | 显示全部楼层
    Sins 发表于 2017-5-22 09:48
    转换精灵有按键可以直接互换QA,不需要涉及正则表达式

    这种思路必须要求有源文件啊……但是转换精灵并不能逆向转换。
    [发帖际遇]: 贵树云野 乐于助人,奖励 6 分 学分. 幸运榜 / 衰神榜
  • TA的每日心情
    难过
    前天 09:42
  • 签到天数: 1047 天

    [LV.10]以坛为家III

    sheward 发表于 2017-5-23 16:17:29 | 显示全部楼层

    这种必须是按课程来写正则表达式,不能套用。因为每个课程都不大一样。
    你可以先看看舍得写的《正则表达式实用教程》http://emagic.org.cn/thread-456-1-1.html
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

    GMT+8, 2017-6-23 00:33 , Processed in 0.271504 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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