找回密码
 加入
搜索
查看: 4170|回复: 11

[AU3基础] 字符串替换,一替换为1,二替换为2,……【已解决】

  [复制链接]
发表于 2010-8-28 10:26:37 | 显示全部楼层 |阅读模式
本帖最后由 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")
有没有简洁的方法啊?
发表于 2010-8-28 10:29:24 | 显示全部楼层
用for...next
发表于 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)

评分

参与人数 1金钱 +20 收起 理由
水木子 + 20

查看全部评分

发表于 2010-8-28 13:54:25 | 显示全部楼层
回复 3# 3mile

表面上看这个方法输出的结果是正确的,不过这是因为之前的字符串很有序。
也就是说 如果 $jian = "一一二三四五六七八九十"  类似这样的话就不对了。
发表于 2010-8-28 13:56:10 | 显示全部楼层
Local $a[10][2] = [['零', 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][0], $a[$i][1])
Next
MsgBox(0, 0, $jian)

评分

参与人数 2金钱 +80 收起 理由
3mile + 30 二维数组解决。厉害
水木子 + 50 出神入化的正则

查看全部评分

发表于 2010-8-28 13:58:24 | 显示全部楼层
本帖最后由 水木子 于 2010-8-28 13:59 编辑

前辈的正则实在太强了,将数字提出来挨个替换!学习啦!
发表于 2010-8-28 14:00:16 | 显示全部楼层
回复 6# 水木子


    貌似没轮到正则就收工了  
发表于 2010-8-28 14:09:35 | 显示全部楼层
本帖最后由 水木子 于 2010-8-28 15:07 编辑

回复 7# afan

呵呵!理解错误,哎!主要是现在一看到前辈就想到了正则,似乎前辈已经成为了正则的代名词!
发表于 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)

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2010-8-28 15:49:12 | 显示全部楼层
回复 5# afan


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

评分

参与人数 2金钱 +60 收起 理由
kn007 + 30 很好!
afan + 30 O(∩_∩)O谢谢

查看全部评分

发表于 2010-8-28 16:47:54 | 显示全部楼层
回复 8# 水木子
哈哈,水木兄看来也醉了
 楼主| 发表于 2010-8-28 18:26:41 | 显示全部楼层
回复 10# foboy
果然简介,佩服。同时感谢楼上的各位。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 08:38 , Processed in 0.082362 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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