通用游戏文本识别格式化处理
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 c
.局部变量 s, 文本型
.局部变量 t
.局部变量 ret, 文本型
输出调试文本 (文本组合处理_纯正则 (“改对子10 改豹子100哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
输出调试文本 (文本组合处理_算法 (“改对子10 改豹子100哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
c = 100
s = 取重复文本 (20, “改对子10 改豹子100哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”)
t = 取启动时间 ()
.计次循环首 (c, )
ret = 文本组合处理_纯正则 (s)
.计次循环尾 ()
调试输出 (“正则”, 取启动时间 () - t, ret)
t = 取启动时间 ()
.计次循环首 (c, )
ret = 文本组合处理_算法 (s)
.计次循环尾 ()
调试输出 (“算法”, 取启动时间 () - t, ret)
返回 ()
输出调试文本 (文本组合处理_纯正则 (“改对子10 改豹子100哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
输出调试文本 (文本组合处理_算法 (“改对子10 改豹子100哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
输出调试文本 (文本组合处理_纯正则 (“哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
输出调试文本 (文本组合处理_算法 (“哈大14.100大树10 子100对100 100锤子100.13 14.100狗100 50丫50小 45.5”))
输出调试文本 (文本组合处理_算法 (“狗100 50丫50小 45.50”)) ' 狗100 50丫 50小 45.50
输出调试文本 (文本组合处理_算法 (“第100你日50大50 88.50”)) ' 第100 你日50 大50 88.50
输出调试文本 (文本组合处理_算法 (“搞100 50大人50小河 19.50”)) ' 搞100 50大人 50小河 19.50
输出调试文本 (文本组合处理_算法 (“大树子100对100 100锤子100.13 14.100”)) ' 大树子100 对100 100锤子 100.13 14.100
.子程序 文本组合处理_算法, 文本型
.参数 文本内容, 文本型
.局部变量 正则, 正则表达式类
.局部变量 str, 文本型
.局部变量 子文本, 文本型
.局部变量 n, 整数型
.局部变量 i, 整数型
.局部变量 acs, 整数型
.局部变量 type, 整数型, , , 0=未知,1=数字汉字,2=汉字数字,3=小数型
.局部变量 汉字结束, 逻辑型
.局部变量 数字结束, 逻辑型
.局部变量 新文本, 文本型
str = 文本内容
正则.创建 (“\d+\.\d+”, str)
.计次循环首 (正则.取匹配数量 (), i)
子文本 = 正则.取匹配文本 (i)
str = 子文本替换 (str, 子文本, “ ” + 子文本 + “ ”, , , 真)
.计次循环尾 ()
str = str + “ ”
新文本 = “”
子文本 = “”
type = 0
n = 取文本长度 (str)
.变量循环首 (1, n, 1, i)
acs = 取代码 (str, i)
.如果真 (acs = 32)
.如果真 (取文本长度 (子文本) > 0)
新文本 = 新文本 + 子文本 + “ ”
子文本 = “”
.如果真结束
type = 0
到循环尾 ()
.如果真结束
.如果真 (acs = 46)
type = #小数点型
子文本 = 子文本 + 字符 (acs)
到循环尾 ()
.如果真结束
.如果真 (type = 0)
.判断开始 (acs > 47 且 acs < 58)
type = #数字汉字
数字结束 = 假
.默认
type = #汉字数字
汉字结束 = 假
.判断结束
子文本 = 子文本 + 字符 (acs)
到循环尾 ()
.如果真结束
.如果真 (type = #汉字数字)
.判断开始 (acs > 47 且 acs < 58)
汉字结束 = 真
.判断 (汉字结束 = 真)
.如果真 (取文本长度 (子文本) > 0)
新文本 = 新文本 + 子文本 + “ ”
子文本 = “”
.如果真结束
type = #汉字数字
汉字结束 = 假
.默认
.判断结束
子文本 = 子文本 + 字符 (acs)
到循环尾 ()
.如果真结束
.如果真 (type = #数字汉字)
.判断开始 (acs > 47 且 acs < 58)
.如果真 (数字结束)
.如果真 (取文本长度 (子文本) > 0)
新文本 = 新文本 + 子文本 + “ ”
子文本 = “”
.如果真结束
type = #数字汉字
数字结束 = 假
.如果真结束
.默认
数字结束 = 真
.判断结束
子文本 = 子文本 + 字符 (acs)
到循环尾 ()
.如果真结束
子文本 = 子文本 + 字符 (acs)
.变量循环尾 ()
返回 (删首尾空 (新文本))
.子程序 文本组合处理_纯正则, 文本型
.参数 参数_文本, 文本型
.局部变量 正则, 正则表达式类
.局部变量 i
.局部变量 局_返回文本, 文本型
正则.创建 (“哈(?:大单|小单|大双|小双|极大|极小|对子|顺子|豹子|大|小|单|双|\d+)|改?(?:\d+\.\d+|[\u4e00-\u9fa5]+\d+|\d+[\u4e00-\u9fa5]+)”, 参数_文本, , , , )
.计次循环首 (正则.取匹配数量 (), i)
.如果真 (i = 1)
局_返回文本 = 正则.取匹配文本 (i, )
到循环尾 ()
.如果真结束
局_返回文本 = 局_返回文本 + “ ” + 正则.取匹配文本 (i, )
.计次循环尾 ()
返回 (局_返回文本)