文本格式转换说明
特点:类似于正则,但更加轻量。针对文本,更针对码表。
实现原理:使用转换表达式,替换源文件中的匹配字符串。
-
单击“工具”菜单,单击“码表格式转换”。
-
单击“浏览”按钮,选择需要转换格式的码表文件(源码表文件)。
-
在“分隔符”文本框中输入源码表文件每行的编码与字词之间的分隔符号。
-
点选与源码表文件格式一致的格式定义,“单行单义(左编码)”、“单行多义(左编码)”、“单行多义(左词条)”。
注意 如果需要转换的码表格式不是上述类型的其中一种,请使用转换表达式转换码表。
-
单击“转换”按钮,输入保存文件名。
-
完成。
- 源条目:使用一组<>定义的文本串,<>中是类似于 “type.count” 的内容。如:<a.1>
- 目标条目:一组<>定义的文本串,<>中一般是一个数字。如:<1>
- 转换间隔:特定的间隔字符串:“==>”
- 源规则:==>左边的所有源条目,源规则用来匹配源文件中符合规则的字符串
- 目标规则:==>右边的所有目标条目,目标规则依据匹配结果,写入结果文件
-
<type1.count><type2.count>...<typen.count>==><1><2>...<n>
每个合法的表达式必须满足如下条件:
-
必须包含==〉,以作为源条目与目标条目的分隔
-
源条目必须是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>,表示匹配所有汉字,直到行尾
-
目标条目必须是<index>的形式,index指定一个源条目从左往右的顺序号,最小值为1,最大值为源条目个数。如<1>,<10>。
注意 index可取:t,r,s,n之中的一个字母,其中<t>表示一个Tab符号,<s>表示一个空格,<r>表示换行符号。<n>必须指定在目标规则的第一个条目,该标示限定源规则匹配时使用完全匹配。
如果目标条目中的,字符串不是一个数字,或不是上述的三个字母之一,程序会将目标条目中的原文写入到结果文件中。
-
源条目不能包含连续的两次 <*.0>
-
源条目最后一个条目不应该是 <*.0>,否则,最后一个匹配结果将是文件文本的全部剩余部分。
-
源条目如果需要匹配的特定字符串,可不加入<>限定。如 //<a.0><r.1> ,表示使用字符串"//"开头的一行字符串,相当于定义了三个源条目,第一个是<//>,第二个是<a.0>,第三个是<r.1>
-
同上,目标条目中也可使用特定的字符串,而不加入<>限定。如://<a.0><r.1>==>//<2><3> 与 //<a.0><r.1>==><1><2><3> 是等效的。
-
如需要完全匹配源规则定义,可在目标规则的第一个条目中指定<n>标志。如:实现删除所有以Tab字符结尾的行,可定义规则为:<c.0><t.1><r.1>==><n>
-
源规则定义示例: //<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
-
单击“工具”菜单,单击“码表格式转换”。
-
单击“浏览”按钮,选择需要转换格式的码表文件(源码表文件)。
-
勾选“依据转换表达式转换文件”选项。
- 在下方文本框中,输入正确的转换表达式。
-
单击“转换”按钮,输入保存文件名。
-
完成。
命令行调用格式为:
mbEditer.exe /do=格式转换 /源码表文件="文件路径" /规则文件="文件路径" /分割符="分割字符" /选项="单行多义(左编码) 或 单行多义(左词条) 或 单行多义(左编码)"
注意 |
|---|
如未指定规则文件,程序依据选项执行特定格式的码表转换。"/选项"如不需要,可不指定。 |
