精易论坛

标题: 金额处理 没什么技术含量 [打印本页]

作者: cf2006a    时间: 2019-7-13 23:01
标题: 金额处理 没什么技术含量
  
子程序名返回值类型公开备 注
处理金额文本型 
参数名类 型参考可空数组备 注
参_文本文本型
参_个数整数型
变量名类 型静态数组备 注
局_计次整数型 
局_余数整数型 
局_商整数型 
局_返回文本型 
局_位置整数型 
局_商 = 取文本长度 (参_文本) \ 参_个数
局_余数 = 取文本长度 (参_文本) % 参_个数
计次循环首 (局_商, 局_计次)
如果真 (局_余数 > 0 局_计次 = 1)
局_返回 = 取文本左边 (参_文本, 局_余数)“,”
局_位置 = 局_余数 + 1
如果 (局_计次 = 局_商)
局_返回 = 局_返回 + 取文本中间 (参_文本, 局_位置, 参_个数)
局_返回 = 局_返回 + 取文本中间 (参_文本, 局_位置, 参_个数)“,”
局_位置 = 局_位置 + 参_个数
计次循环尾 ()
返回 (局_返回)
子程序名返回值类型公开备 注
处理正整数金额文本型 处理金额的时候,每三位加一个[逗号],别跟我说你没见过
参数名类 型参考可空数组备 注
处理前文本型
变量名类 型静态数组备 注
处理后文本型 
正则正则表达式 
正则.创建 (“(?<=\d)(?=(?:\d{3})+(?!\d))”, )
返回 (正则.替换 (处理前, “,”, 1, , 真, ))
' --------------------------------------------
' 我来解释一下这个正则式 先分成左右两部分
' --------------------------------------------
' 这是正则中有的表达式,无法理解可以跳过先往下看
' (?<=  )   肯定逆序环视:子表达式能够匹配左侧文本
' (?=   )   肯定顺序环视:子表达式能够匹配右侧文本
' (?' (?!   )   否定顺序环视:子表达式不能匹配右侧文本
' --------------------------------------------
' \d   匹配 0-9 的数字
' 这里使用 (?<=\d) 简单来说就是 寻找前面有数字的位置 (因为第一位金额不需要插入逗号)
' 后面使用 (?=(?:\d{3})+)  是 寻找后面有三位数字的位置 (因为我们需要每三位插入)
' 上面的 (?:) 意思是让正则不保存这个子表达式内容,在文本很多的时候,可以提高效率,我们不需要的子文本,就不捕获
' 最后加了 (?!\d)  用来标记每三位计数的起始位置(如果无法理解,可以把这段删除,再运行程序,就明白了)
' --------------------------------------------
' 这个正则只能处理正整数的,大家可以自己研究 带负号,带小数点的文本处理



i支持库列表   支持库注释   
RegEx正则表达式支持库


作者: pyms    时间: 2019-7-13 23:15
谢谢开源,感谢分享!
作者: 外星星人    时间: 2019-7-14 13:27
谢谢开源,感谢分享!
作者: 四叶草接单    时间: 2019-7-19 08:47
这个好像可以尝试一下哇,下载看看




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4