|
发表于 2021-3-7 00:22:51
|
显示全部楼层
云南省曲靖市
按要求重新改了一下
.版本 2
.支持库 RegEx
.程序集 窗口程序集_启动窗口
.子程序 取匹配文本, 文本型
.参数 文本, 文本型
.局部变量 正则, 正则表达式
.局部变量 搜索结果, 搜索结果, , "0"
.局部变量 数, 整数型
.局部变量 临时, 文本型
.局部变量 前一个, 文本型
.局部变量 区间, 整数型
.局部变量 开始, 整数型
.局部变量 结束, 整数型
.局部变量 结果, 整数型, , "0"
.局部变量 结果文本, 文本型
正则.创建 (“(R?[0-9]+)|(\,)|(\~)|(\-)”, )
搜索结果 = 正则.搜索全部 (文本)
.计次循环首 (取数组成员数 (搜索结果), 数)
临时 = 搜索结果 [数].取匹配文本 (文本, )
.如果真 (临时 ≠ “,” 且 临时 ≠ “~” 且 临时 ≠ “-”)
.如果 (区间 = 0)
加入成员 (结果, 到整数 (取文本右边 (临时, 取文本长度 (临时) - 1)))
.否则
.如果 (取文本左边 (前一个, 1) ≠ “R”)
开始 = 到整数 (前一个)
.否则
开始 = 到整数 (取文本右边 (前一个, 取文本长度 (前一个) - 1))
.如果结束
.如果 (取文本左边 (临时, 1) ≠ “R”)
结束 = 到整数 (临时)
.否则
结束 = 到整数 (取文本右边 (临时, 取文本长度 (临时) - 1))
.如果结束
.判断循环首 (开始 < 结束)
开始 = 开始 + 1
加入成员 (结果, 开始)
.判断循环尾 ()
.如果结束
.如果真结束
.如果 (临时 ≠ “,”)
.如果 (临时 ≠ “~” 且 临时 ≠ “-”)
前一个 = 临时
.否则
区间 = 1
.如果结束
.否则
区间 = 0
.如果结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (结果), 数)
.如果真 (数 ≠ 1)
结果文本 = 结果文本 + “,”
.如果真结束
结果文本 = 结果文本 + “R” + 到文本 (结果 [数])
.计次循环尾 ()
返回 (结果文本)
.子程序 _按钮1_被单击
编辑框5.内容 = 取匹配文本 (编辑框1.内容)
|
|