找回密码
 加入
搜索
查看: 2534|回复: 4

[系统综合] [已解决]AU3正则替换数字为逗号分隔符

[复制链接]
发表于 2013-3-13 08:54:03 | 显示全部楼层 |阅读模式
本帖最后由 dhlhmgc 于 2013-3-14 09:16 编辑
Dim $n,$c,$v
$n = "-1279834847944074100465236.3398"
$c = StringRegExpReplace($n,"(\d{1,3})(?=(\d{3})+(?:$|\.))","$1,")
$v = StringRegExpReplace($n,"[^0-9.-]","")
msgbox(4096,"结果",StringFormat("原值: %40s\n格式: %40s\n转回: %40s",$n,$c,$v) )
此段代码将数字格式化为日常货币格式,也可转回,但测试中存在一下问题,
就是小数点后超过三位时,也会加入逗号分隔符,期待高人指点一下!
如何改进
发表于 2013-3-13 14:36:53 | 显示全部楼层
"(\d{1,3})(?=(\d{3})+(\.\d*)+(?:$|\.))","$1,")
发表于 2013-3-13 15:49:02 | 显示全部楼层
本帖最后由 shqf 于 2013-3-13 15:50 编辑
Dim $n, $c, $v
$n = "-1279834847944074100465236.3398"
$c = StringRegExpReplace($n, "(?<=\d)(?=((\d{3})+\.))", ",")
$v = StringRegExpReplace($c, ",", "")
MsgBox(4096, "结果", StringFormat("原值: %40s\n格式: %40s\n转回: %40s", $n, $c, $v))
 楼主| 发表于 2013-3-14 09:16:18 | 显示全部楼层
测试没有问题,多谢指点!
要能有点说明就更好了!
发表于 2013-3-14 10:14:37 | 显示全部楼层
测试没有问题,多谢指点!
要能有点说明就更好了!
dhlhmgc 发表于 2013-3-14 09:16



    不带小数的话就都有问题了…
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 00:19 , Processed in 0.080050 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表