找回密码
 加入
搜索
查看: 3595|回复: 5

[效率算法] 求助字窜颠倒

  [复制链接]
发表于 2010-6-6 16:57:42 | 显示全部楼层 |阅读模式
本帖最后由 zhao_ming 于 2010-6-6 17:05 编辑

一组     32 43 54 65 76 87 8 该组数长度未知
想要结果 23 34 45 56 67 78 8

如果后一次数为单数则不换

12 13 14 15 16 17 18 1

21 31 41 51 61 71 81 1

不确认这组数长组,想要的结果  两个字符拆分 再颠倒
如这组数是13位, 最后一次,就不变
发表于 2010-6-6 17:48:16 | 显示全部楼层

如此?
Dim $a = ''
$text = '32 43 54 65 76 87 8 32 43 54 65 76 87 8 32 43 54 65 76 87 8 32 43 54 65 76 87 8'
$array = StringSplit($text, ' ', 1)
for $i = 1 to UBound($array) - 1
 $a &= StringMid($array[$i], 2, 1)&StringMid($array[$i], 1, 1)&" "
Next
msgbox(0, 0, $a)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

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

查看全部评分

 楼主| 发表于 2010-6-6 18:21:16 | 显示全部楼层
谢谢楼上,给的帮助。请问该组数如果, 没有空格 3243546576878 StringSplit没分隔符 不能拆
发表于 2010-6-6 18:21:30 | 显示全部楼层
或者这样(不管是否有空格间隔都行)
$Str = '32 43 54 65 76 87 8'
Msgbox(0, $Str, StringRegExpReplace($str, '(\d)(\d)', '$2$1'))

评分

参与人数 1金钱 +5 收起 理由
lynfr8 + 5 学习了!

查看全部评分

 楼主| 发表于 2010-6-6 18:23:10 | 显示全部楼层
谢谢已得到解决
发表于 2010-6-6 21:31:07 | 显示全部楼层
回复 4# afan

给不熟悉正则的同学解释一下AFAN大概的意思:
/d  表示匹配数字
$1和$2等分别表示第几个括号内的。
所以:$2$1就表示把匹配到的结果颠倒过来。
小代码,大智慧。

评分

参与人数 2金钱 +15 贡献 +1 收起 理由
lynfr8 + 1
afan + 15 辛苦:)

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-15 08:17 , Processed in 0.111174 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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