fanchenglu 发表于 2009-1-7 08:20:06

如何判断一个数中连续相同的数

如题,判断一个数中连续相同的数,如123334556,怎么能判断这个数中出现3个3,2个5.

谢谢各位
StringRegExp 不错 谢谢了(我用了老版本没找到,呵呵,已经换新的了)
再继续问题
我是找出来之后用一个x2替换表示出现两次,或x3替换表示出现3次,或x4替换表示出现4次...
请再次帮忙

问题继续
实在对正则表达了解不透,请各位继续帮忙
1、找出一个数中连续相同的数,不找首位的,如1123334556,怎么能判断这个数中出现3个3,2个5。对首位出现的11不判断
2、找出来之后用一个x2替换表示出现两次,或x3替换表示出现3次,或x4替换表示出现4次...同时在x2之后跟上相同的那个字符,如1123334556这个数112x334x256,x33表示3个3,x25表示2个5

[ 本帖最后由 fanchenglu 于 2009-1-8 17:30 编辑 ]

liongodmien 发表于 2009-1-7 09:03:16

指定字符:

stringreplace('123334556', '3', 0)
msgbox(0,0,'数字3有'&@extended&'个')

pcbar 发表于 2009-1-7 09:12:44

$a='123334556'
$b=StringRegExp($a,'0{2,}|1{2,}|2{2,}|3{2,}|4{2,}|5{2,}|6{2,}|7{2,}|8{2,}|9{2,}',3)
for $i=0 to UBound($b)-1
MsgBox(0,0,$b[$i])
Next

fanchenglu 发表于 2009-1-7 10:03:15

谢谢各位
StringRegExp 不错 谢谢了(我用了老版本没找到,呵呵,已经换新的了)
再继续问题
我是找出来之后用一个x2替换表示出现两次,或x3替换表示出现3次,或x4替换表示出现4次...
请再次帮忙

bob 发表于 2009-1-7 10:04:25

au3用的什么正则表达式,不支持子表达式和嵌入条件等
感觉有些缩水,用的不爽啊

superflq 发表于 2009-1-7 10:54:49

原帖由 liongodmien 于 2009-1-7 09:03 发表 http://www.autoitx.com/images/common/back.gif
指定字符:

stringreplace('123334556', '3', 0)
msgbox(0,0,'数字3有'&@extended&'个')




又学了一招

pcbar 发表于 2009-1-7 11:04:47

$a='123334556'
$b=StringRegExp($a,'0{2,}|1{2,}|2{2,}|3{2,}|4{2,}|5{2,}|6{2,}|7{2,}|8{2,}|9{2,}',3)
for $i=0 to UBound($b)-1
$a=StringReplace($a,$b[$i],'x'&stringlen($b[$i]))
Next
MsgBox(0,0,$a)

fanchenglu 发表于 2009-1-7 13:16:51

verygood
非常感谢pcbar
代码非常有效

问题继续
实在对正则表达了解不透,请各位继续帮忙
1、找出一个数中连续相同的数,不找首位的,如1123334556,怎么能判断这个数中出现3个3,2个5。对首位出现的11不判断
2、找出来之后用一个x2替换表示出现两次,或x3替换表示出现3次,或x4替换表示出现4次...同时在x2之后跟上相同的那个字符,如1123334556这个数112x334x256,x33表示3个3,x25表示2个5

[ 本帖最后由 fanchenglu 于 2009-1-7 15:32 编辑 ]

pcbar 发表于 2009-1-7 19:32:25

$a='1123334556'
$b=StringRegExp($a,'0{2,}|1{2,}|2{2,}|3{2,}|4{2,}|5{2,}|6{2,}|7{2,}|8{2,}|9{2,}',3)
for $i=0 to UBound($b)-1
if StringInStr($a,$b[$i])<>1 then $a=StringReplace($a,$b[$i],'x'&stringlen($b[$i])&StringLeft($b[$i],1))
Next
MsgBox(0,0,$a)

fanchenglu 发表于 2009-1-8 16:43:01

ok
非常感谢 pcbar
页: [1]
查看完整版本: 如何判断一个数中连续相同的数