zhao_ming 发表于 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位, 最后一次,就不变

lynfr8 发表于 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)

zhao_ming 发表于 2010-6-6 18:21:16

谢谢楼上,给的帮助。请问该组数如果, 没有空格 3243546576878 StringSplit没分隔符 不能拆

afan 发表于 2010-6-6 18:21:30

或者这样(不管是否有空格间隔都行)$Str = '32 43 54 65 76 87 8'
Msgbox(0, $Str, StringRegExpReplace($str, '(\d)(\d)', '$2$1'))

zhao_ming 发表于 2010-6-6 18:23:10

谢谢已得到解决

lpxx 发表于 2010-6-6 21:31:07

回复 4# afan

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