文本格式转换说明

特点:类似于正则,但更加轻量。针对文本,更针对码表。

实现原理:使用转换表达式,替换源文件中的匹配字符串。

源文件格式是:编码+分割字符+字词+换行符

de	的
yi	一
shi	是
le	了
bu	不
zai	在
ren	人
you	有
guo	国
ta	他
wo	我
...

源文件格式是:编码+分割字符+字词1+分割符+字词2+分割符+...换行符

de	的	得	地			
yi	一	以	移			
shi	是	数	式	使		
le	了	乐	勒	叻	泐	
bu	不	部	布	步	补	
zai	在	再	载	仔	灾	
ren	人	任	认	仁	忍	
you	有	由	又	右		
guo	国	果	过	郭	裹	
ta	他	她	它	塔		
wo	我	沃	握	卧	窝	涡
...

源文件格式是:字词+分割字符+编码1+分割符+编码2+分割符+...换行符


的	de1	d	de5
一	yi1	y
和	he2	h	huo4	hu2
了	le5	l	liao3
不	bu4	b
在	zai4	z		
人	ren	r
重	zhong4	c	chong2
...
  1. 单击“工具”菜单,单击“码表格式转换”

  2. 单击“浏览”按钮,选择需要转换格式的码表文件(源码表文件)。

  3. “分隔符”文本框中输入源码表文件每行的编码与字词之间的分隔符号。

  4. 点选与源码表文件格式一致的格式定义,“单行单义(左编码)”、“单行多义(左编码)”、“单行多义(左词条)”

    注意 注意

    如果需要转换的码表格式不是上述类型的其中一种,请使用转换表达式转换码表。

  5. 单击“转换”按钮,输入保存文件名。

  6. 完成。

术语说明:
  1. 源条目:使用一组<>定义的文本串,<>中是类似于 “type.count” 的内容。如:<a.1>
  2. 目标条目:一组<>定义的文本串,<>中一般是一个数字。如:<1>
  3. 转换间隔:特定的间隔字符串:“==>”
  4. 源规则:==>左边的所有源条目,源规则用来匹配源文件中符合规则的字符串
  5. 目标规则:==>右边的所有目标条目,目标规则依据匹配结果,写入结果文件
定义格式:
  • 
    <type1.count><type2.count>...<typen.count>==><1><2>...<n>
    
    
定义说明:

每个合法的表达式必须满足如下条件:

  1. 必须包含==〉,以作为源条目与目标条目的分隔

  2. 源条目必须是type.count的形式。

    其中type定义匹配字符的类型,可取如下值之一:

    
    number    或	n 数字
    lower     或	l 小写英文字符
    upper     或	u 大写英文字符
    letter    或	e 英文字符
    symbol    或	m 可打印的、非英文字母、非英文数字的ASC字符 如 ,.; ^*&
    chinese   或	c 汉字字符  (>0xff的所有字符)
    all       或	a 非0的字符
    space     或	s 空格
    row       或	r 换行
    tab       或	t Tab制表符号
    

    count可取0~65535之间的任意整数,指定最大的匹配的个数。如果count定义为0,则表示匹配全部,直到字符是下一个源条目指定的类型为止。

    如:

    <n.1>,表示匹配1个数字

    <l.10>,表示匹配10个小谢字母

    <c.0><r.1>,表示匹配所有汉字,直到行尾

  3. 目标条目必须是<index>的形式,index指定一个源条目从左往右的顺序号,最小值为1,最大值为源条目个数。如<1>,<10>。

    注意 注意

    index可取:t,r,s,n之中的一个字母,其中<t>表示一个Tab符号,<s>表示一个空格,<r>表示换行符号。<n>必须指定在目标规则的第一个条目,该标示限定源规则匹配时使用完全匹配
    如果目标条目中的,字符串不是一个数字,或不是上述的三个字母之一,程序会将目标条目中的原文写入到结果文件中。

进阶限定:
  1. 源条目不能包含连续的两次 <*.0>

  2. 源条目最后一个条目不应该是 <*.0>,否则,最后一个匹配结果将是文件文本的全部剩余部分。

  3. 源条目如果需要匹配的特定字符串,可不加入<>限定。如 //<a.0><r.1> ,表示使用字符串"//"开头的一行字符串,相当于定义了三个源条目,第一个是<//>,第二个是<a.0>,第三个是<r.1>

  4. 同上,目标条目中也可使用特定的字符串,而不加入<>限定。如://<a.0><r.1>==>//<2><3> 与 //<a.0><r.1>==><1><2><3> 是等效的。

  5. 如需要完全匹配源规则定义,可在目标规则的第一个条目中指定<n>标志。如:实现删除所有以Tab字符结尾的行,可定义规则为:<c.0><t.1><r.1>==><n>

  6. 源规则定义示例: //<a.0><r.1>
    	待匹配的源码表文本://这是一行注释
    	匹配后:  条目1://
                  条目2:这是一行注释
                  条目3:换行符
    
    源规则定义示例: /*<a.0>*/
        待匹配的源码表文本:/*这是一段注释*/
        匹配后:  条目1:/*
                  条目2:这是一段注释
                  条目3:*/
    
    源规则定义示例: <a.0><t.1><a.0><r.1>
        待匹配的源码表文本:aaa  啊啊啊
        匹配后:  条目1:aaa
                  条目2:Tab制表符
                  条目3:啊啊啊
                  条目4:换行符
    
    完整的转换表达式示例:<a.0><t.1><a.0><r.1>==><3><t><1><r>
    	待匹配的源码表文本:aaa  啊啊啊
    	匹配后:  条目1:aaa
                  条目2:Tab制表符
                  条目3:啊啊啊
                  条目4:换行符
    	执行表达式后的结果串为:啊啊啊 aaa
    
  1. 单击“工具”菜单,单击“码表格式转换”

  2. 单击“浏览”按钮,选择需要转换格式的码表文件(源码表文件)。

  3. 勾选“依据转换表达式转换文件”选项。

  4. 在下方文本框中,输入正确的转换表达式。
  5. 单击“转换”按钮,输入保存文件名。

  6. 完成。

命令行调用格式为:

mbEditer.exe /do=格式转换 /源码表文件="文件路径" /规则文件="文件路径" /分割符="分割字符" /选项="单行多义(左编码) 或 单行多义(左词条) 或 单行多义(左编码)"

注意 注意

如未指定规则文件,程序依据选项执行特定格式的码表转换。"/选项"如不需要,可不指定。