转MDICT词典时出现的问题
在转一个MDICT词典时,出现如下提示,请教是什么问题? 估计是格式不对。找不到词条的结束标记,导致认为词条太长了。 是不是有空行?最后一条词条是不是有</>结束的标志? cdyg版主:
如何在ULTRAEDIT中用正则表达式将下图中上面高亮部分转成下面高亮的? 从你给的图片中看不是太明确,是不是要将上面高亮部分的“朳”等类似单字给分离成独立的词条并加上相应的分隔符呢?此外这个单字前后有特定的规律性文字或符号吗,能否再详细进行说明?
最好你节选出部分比较典型的文本,作为附件格式附上好吗? 原帖由 cdyg 于 2009-5-15 16:02 发表 https://pdawiki.com/images/common/back.gif
从你给的图片中看不是太明确,是不是要将上面高亮部分的“朳”等类似单字给分离成独立的词条并加上相应的分隔符呢?此外这个单字前后有特定的规律性文字或符号吗,能否再详细进行说明?
最好你节选出部分比较典型的 ... [/quote
对,就是想将“朳”等类似单字给分离成独立的词条并加上相应的分隔符,格式如图所示,因有1300多,手工改费时间,我曾试着替换:”。?^p①替换为:”。^p</>^p?^p①,?代表一个字符,就是“朳”等类似单字,可惜全部将单字替换成?了。
节选了部分在附件中,类似的单字共三个,请指点,谢谢
[ 本帖最后由 54john 于 2009-5-15 19:15 编辑 ] 另一个问题,如何将两个汉字之间的数字去掉?中间的数字是代表该字的读音,但检索不方便。例子如下面文字中的“重2九”等:
重2九
指农历九月初九日。又称重阳。 晋陶潜 《九日闲居》诗序:“余閑居,愛重九之名。秋菊盈園,而持醪靡由。” 唐文丙 《牡丹》诗:“不同寒菊舒重九,只擬清香泛酒卮。” 明徐弘祖 《徐霞客游记·滇游日记三》:“初九日……是日爲重九,高風鼓寒,以登高之候。” 闻一多 《红烛·忆菊》:“那祖国底登高饮酒的重九,不又是你诞生底吉辰吗?”参见“ 重2陽”。
</>
重2九登高
旧俗于农历九月九日重阳节,以绛囊盛茱萸,登高山,饮菊酒,谓可以避邪免灾。 南朝梁吴均 《续齐谐记·重阳登高》:“ 汝南桓景 隨 費長房 遊學累年。 長房 謂曰:‘九月九日汝家當有災,宜急去,令家人各作絳囊,盛茱萸以繫臂,登高飲菊花酒,此禍可除。’ 景 如言,齊家登山。夕還,見雞犬牛羊一時暴死。 長房 聞之,曰:‘此可以代矣。’今世人每至九月九日登高飲酒,婦人帶茱萸囊,因此也。” 郭沫若 《芍药及其他·竹阴读画》:“而且我在几天前的重九登高的时候,分明是从这儿经过过的,那真可算是‘过门而不入’了。”
</>
重2九譯
语言经过辗转翻译才能听懂。借指边远之地。《史记·大宛列传》:“且誠得而以義屬之,則廣地萬里,重九譯,致殊俗,威德徧於四海。” 张守节 正义:“言重重九遍譯語而致。”参见“ 重2譯”。 再一个问题:如何去掉重复词条? 1、试试这个
ue中选perl模式
查找:(?m)。(\w+)$\r?\n^①
替换:。\r\n</>\r\n\1\r\n①
2、
查找:(\w)(\w)
替换:\1\2
3、
同问? 原帖由 youweiwu 于 2009-5-15 23:49 发表 https://pdawiki.com/images/common/back.gif
1、试试这个
ue中选perl模式
查找:(?m)。(\w+)$\r?\n^①
替换:。\r\n\r\n\1\r\n①
2、
查找:(\w)(\w)
替换:\1\2
3、
同问?
非常感谢你的指点。 原帖由 youweiwu 于 2009-5-15 23:49 发表 https://pdawiki.com/images/common/back.gif
1、试试这个
ue中选perl模式
查找:(?m)。(\w+)$\r?\n^①
替换:。\r\n\r\n\1\r\n①
2、
查找:(\w)(\w)
替换:\1\2
3、
同问?
试了第二个问题,但不成功。不是要删除所有的,只是要删除类似参见“ 重2陽”和</>后面的重2九登高的数字,否则“年2月”中的2也给删除了。
[ 本帖最后由 54john 于 2009-5-16 17:46 编辑 ] 查找(?<=</>\r?\n)(\w)(\w)|(\w)(\w)(?=”。\r?\n</>)看行不行,不然没办法了。:'( 这两天没有上论坛,刚刚才看到。
首先要将文本全部转换成UNICODE格式。
1、选择UE正则表达式引擎,
查找:"。^(?^)^p①"(引号内)
替换:"。^p</>^p^1^p①" 即可
2、要替换两次,第一次:
查找:"参见“ ^(?^)2^(?^)"
替换:"参见“^1^2"
第二次:
查找:</>^p^(?^)2 替换:</>^p^1
如果不仅是2有其它的数字,把2改成即可。
3、如果会SQL语言通过程序来处理会比较方便一些。
不过还有另一种办法:请先将换行符全部替换成特殊的字符(如@@@),转换后使一个词条为一行;然后用EXCEL打开(当然EXCEL最多只支持65536条词条,如果超过请截成多个文本。),排序,在B2单元格上构造一个公式:
B2=IF(A2=A1,1,0),然后把公式给复制到B2以下的所有单元格,见附图:
这样很明确,凡是B列单元格中值为1的一定是重复的词条,通过EXCEL的数据→筛选→自动筛选 操作,删除值为1的所有行即可。 原帖由 cdyg 于 2009-5-17 18:49 发表 https://pdawiki.com/images/common/back.gif
这两天没有上论坛,刚刚才看到。
首先要将文本全部转换成UNICODE格式。
1、选择UE正则表达式引擎,
查找:"。^(?^)^p①"(引号内)
替换:"。^p^p^1^p①" 即可
2、要替换两次,第一次:
查找:"参见“ ^(?^)2^( ...
谢谢,谢谢,有空要一点一点改了。 不客气,如果制作过程中有什么问题,可以一起交流。 原帖由 cdyg 于 2009-5-18 12:23 发表 https://pdawiki.com/images/common/back.gif
不客气,如果制作过程中有什么问题,可以一起交流。
向cdyg版主学习使用ULTRAEDIT。关于找出重复词条的办法也可这样:利用正则表达式生成只有关键词的文件(感谢rayman提示),再用cdyg的办法在EXCEL中查找、比较、删除。现在要请教的问题是:如何生成只有关键词的文件,把所有内容和</>替换掉。
[ 本帖最后由 54john 于 2009-5-18 20:56 编辑 ] 关于删除重复词条的问题,由于我在修订牛津双解时处理过,说下我的做法
我用的是Boxer Text Editor这个软件,它可以直接搜索重复词条,而且这个它打开文件比UE更快。具体是,将关键词和内容合并在一行,然后直接搜索,自动生成一个记录重复词条的文本文件。但我后面是手工删除,还是比较麻烦。
-------------------------------------------------
顺便借此向cdyg版主请教一个问题:
如何用正则表达式将文档中固定位置的大写字母单词替换成小写字母单词?例如
<a herf "entry=ABC">ABC</a>
中的两个ABC
[ 本帖最后由 yru 于 2009-5-18 21:45 编辑 ] 原帖由 54john 于 2009-5-18 20:19 发表 https://pdawiki.com/images/common/back.gif
向cdyg版主学习使用ULTRAEDIT。关于找出重复词条的办法也可这样:利用正则表达式生成只有关键词的文件(感谢rayman提示),再用cdyg的办法在EXCEL中查找、比较、删除。现在要请教的问题是:如何生成只有关键词的文 ...
不敢说请教:$ :$ 互相交流吧!
我原来理解你所说的词条是指词条与正文内容都重复。如果你指的仅是词条重复那就更简单了,查找</>^p*%,然后勾选中advanced中的list lines containing string,点击next,列出所有关键词后点击clipbord,新建文本粘贴,去除所有的</>标志,再补上第一条词条就是所有关键词的目录了。 原帖由 yru 于 2009-5-18 21:44 发表 https://pdawiki.com/images/common/back.gif
如何用正则表达式将文档中固定位置的大写字母单词替换成小写字母单词?例如
<a herf "entry=ABC">ABC</a>
中的两个ABC
这个用正则表达式很难胜任,我考虑的办法是,可以在"<a herf "entry="与</a>的前后加上特殊分隔符号如###,然后用EXCEL打开,仅以###为分隔符,这样就会使含有“<a herf "entry=”的标志出现在固定的第二列中(除非一个词条有2处以上的跳转,其它不含跳转的词条都在第一列),然后选中这一列,新建列用lower()公式转换为小写后粘贴回该列为数值格式。(或将这一列以纯文本复制到WORD中,通过大小写转换工具直接转换为小写再粘贴回EXCEL)
当然更简单的办法是,如果对程序比较熟,将“a herf "entry=”与<a>之间ascii值大于96且小于128的文本的值直接减去96转换成ascii即可。
[ 本帖最后由 cdyg 于 2009-5-19 12:24 编辑 ] 还有一种更简单的办法就是利用UEDIT的宏工具:
编辑宏,将以下文本粘贴到宏窗口中:
InsertMode
ColumnModeOff
HexOff
UltraEditReOn
Find MatchCase RegExp "<a herf "entry*</a>"
ToLower
Key END
按CTRL-M键运行这个宏直到文件结尾即可。 附件是这个宏文件:
加载宏文件,宏→多次运行宏→选中lower,勾选play macro to end of file 原帖由 cdyg 于 2009-5-19 11:23 发表 https://pdawiki.com/images/common/back.gif
不敢说请教:$ :$ 互相交流吧!
我原来理解你所说的词条是指词条与正文内容都重复。如果你指的仅是词条重复那就更简单了,查找^p*%,然后勾选中advanced中的list lines containing string,点击next,列出所有关键 ...
是我没说清楚,本意是指词条与正文内容都重复,用你的方法已导出词条索引文件就可以了。再请教一个问题:查找时要找除</>之外的三个任意字符如何找? 非常非常感谢cdyg版主! 原帖由 54john 于 2009-5-19 13:17 发表 https://pdawiki.com/images/common/back.gif
是我没说清楚,本意是指词条与正文内容都重复,用你的方法已导出词条索引文件就可以了。再请教一个问题:查找时要找除</>之外的三个任意字符如何找?
查找:[~</>][~</>][~</>] 再问一个问题:如何查找除词条外以汉字结尾的行?
页:
[1]
2