找回密码
 加入
搜索
楼主: binghc

[效率算法] [正则练习]给数字串加上逗号

 火... [复制链接]
发表于 2010-11-15 00:27:58 | 显示全部楼层
看看先 ..........
发表于 2010-11-15 08:14:14 | 显示全部楼层
\d{3}\d{3}\d{3}
发表于 2010-11-15 18:01:58 | 显示全部楼层
#Include <String.au3>
_StringAddThousandsSep函数的源码好像就是正则写的,参考下就行了
 楼主| 发表于 2010-11-15 18:09:40 | 显示全部楼层
回复 33# netegg


    好主意!马上去看一下这个函数的正则是怎么写的。。。
 楼主| 发表于 2010-11-15 18:13:29 | 显示全部楼层
本帖最后由 binghc 于 2010-11-15 18:21 编辑

看了,不是纯正则处理的,那就不是本贴的谈论范围了

不过系统的库函数,写得就是很好:


Func _StringAddThousandsSep($sString, $sThousands = ",", $sDecimal = ".")
        Local $sResult = ""
        Local $aNumber = StringRegExp($sString, "(\d+)\D?(\d*)", 1)
        If UBound($aNumber) = 2 Then
                Local $sLeft = $aNumber[0]
                While StringLen($sLeft)
                        $sResult = $sThousands & StringRight($sLeft, 3) & $sResult
                        $sLeft = StringTrimRight($sLeft, 3)
                WEnd
                $sResult = StringTrimLeft($sResult, 1)
                If $aNumber[1] <> "" Then $sResult &= $sDecimal & $aNumber[1]
        EndIf
        Return $sResult
EndFunc


佩服!独特的处理方式!
发表于 2010-11-16 00:50:48 | 显示全部楼层
看你们的 学习
发表于 2010-11-18 21:35:53 | 显示全部楼层
還在學習中..先多看看人家寫的

謝謝大家辛苦了
发表于 2010-11-21 18:12:57 | 显示全部楼层
我还是直接看答案好了
发表于 2010-11-21 19:39:13 | 显示全部楼层
以为很简单。。。。。结果看半天没明白
发表于 2010-11-22 08:00:14 | 显示全部楼层
学习来的!
发表于 2024-11-29 19:59:57 | 显示全部楼层
这么多人研究正则啊
发表于 2024-12-1 00:11:09 | 显示全部楼层
看看怎麼實現,我想應該有數字檢查,長度及分割應該就可以實現了
发表于 2024-12-10 15:26:22 | 显示全部楼层
回復查看大神解題思路
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 01:00 , Processed in 0.071182 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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