j88iang 发表于 2010-8-28 10:26:37

字符串替换,一替换为1,二替换为2,……【已解决】

本帖最后由 j88iang 于 2010-9-5 12:22 编辑

        $jian = "一二三四五六七八九"
                $jian = StringRegExpReplace($jian, "一", "1")
        $jian = StringRegExpReplace($jian, "二", "2")
        $jian = StringRegExpReplace($jian, "三", "3")
        $jian = StringRegExpReplace($jian, "四", "4")
        $jian = StringRegExpReplace($jian, "五", "5")
        $jian = StringRegExpReplace($jian, "六", "6")
        $jian = StringRegExpReplace($jian, "七", "7")
        $jian = StringRegExpReplace($jian, "八", "8")
        $jian = StringRegExpReplace($jian, "九", "9")有没有简洁的方法啊?

kn007 发表于 2010-8-28 10:29:24

用for...next

3mile 发表于 2010-8-28 13:13:09

$jian = "一二三四五六七八九"
For $i=1 To StringLen($jian)
        $jian=StringReplace($jian,StringMid($jian,$i,1),$i)
Next
MsgBox(0,0,$jian)

水木子 发表于 2010-8-28 13:54:25

回复 3# 3mile

表面上看这个方法输出的结果是正确的,不过这是因为之前的字符串很有序。
也就是说 如果 $jian = "一一二三四五六七八九十"类似这样的话就不对了。

afan 发表于 2010-8-28 13:56:10

Local $a = [['零', 0],['一', 1],['二', 2],['三', 3],['四', 4],['五', 5],['六', 6],['七', 7],['八', 8],['九', 9]]
$jian = '一三八零二四五六七九'
$jian = '你是si三八吗?不,是三七'
For $i = 0 To UBound($a) - 1
        $jian = StringReplace($jian, $a[$i], $a[$i])
Next
MsgBox(0, 0, $jian)

水木子 发表于 2010-8-28 13:58:24

本帖最后由 水木子 于 2010-8-28 13:59 编辑

前辈的正则实在太强了,将数字提出来挨个替换!学习啦!{:face (411):}

afan 发表于 2010-8-28 14:00:16

回复 6# 水木子


    貌似没轮到正则就收工了{:face (301):}

水木子 发表于 2010-8-28 14:09:35

本帖最后由 水木子 于 2010-8-28 15:07 编辑

回复 7# afan

呵呵!理解错误,哎!主要是现在一看到前辈就想到了正则,似乎前辈已经成为了正则的代名词!{:face (317):}

C.L 发表于 2010-8-28 14:29:51


$jian = "一二三四五六七八九零"
$jian2 = '你是si三八吗?不,是三七'
$jian3 = '一三八零二四五六七九'
$len = StringLen ($jian)
For $i=1 To $len
        $a=$i
        If $i=10 Then $a = 0
        $jian2 = StringRegExpReplace ($jian2,StringMid ($jian,$i,1),$a)
        $jian3 = StringRegExpReplace ($jian3,StringMid ($jian,$i,1),$a)
Next
MsgBox (0,'',$jian2&@CRLF&$jian3)

foboy 发表于 2010-8-28 15:49:12

回复 5# afan


    这个思想很好,不过可以再简单一点:
Global $num=["零","一","二","三","四","五","六","七","八","九"]
$jian = "一二三四五六七八九"
For $i=0 To 9
        $jian=StringReplace($jian,$num[$i],$i)
Next

3mile 发表于 2010-8-28 16:47:54

回复 8# 水木子
哈哈,水木兄看来也醉了

j88iang 发表于 2010-8-28 18:26:41

回复 10# foboy
果然简介,佩服。同时感谢楼上的各位。
页: [1]
查看完整版本: 字符串替换,一替换为1,二替换为2,……【已解决】