找回密码
 加入
搜索
查看: 4176|回复: 13

[AU3基础] 这个正则怎么写?大家教我下啊!

 火.. [复制链接]
发表于 2011-6-8 16:45:30 | 显示全部楼层 |阅读模式
$a = '1|2|3|45|678|'
我想要的结果是得到里面的数字项:1,2,3,45,678。
我有笨方法就是得到'|'的数量,然后用函数得到里面的数字,想用正则来做,知道的帮下忙啊!
发表于 2011-6-8 16:50:25 | 显示全部楼层
本帖最后由 水木子 于 2011-6-8 16:55 编辑

$sText = '1|2|3|45|678|'
$sSrer = StringRegExpReplace($sText, '\|', ',')
MsgBox(0, '', $sSrer)


当然用 StringReplace 也可以!
$sText = '1|2|3|45|678|'
$sSrl = StringReplace($sText, '|', ',')
MsgBox(0, '', $sSrl)
 楼主| 发表于 2011-6-8 16:55:51 | 显示全部楼层
回复 2# 水木子
谢谢。
我想要的是得到里面的数据,就是得到1和2和3和45和678.我要用这几个数据,而不是得到1,2,3,45,678.
发表于 2011-6-8 16:59:26 | 显示全部楼层
本帖最后由 水木子 于 2011-6-8 17:01 编辑

回复 3# wzh880801
说白了就是要去掉那些非阿拉伯数字的字符吧?
那么得到的全是数字?结果将是12345678???是这样吗?


那么这样就可以啦!

$sText = '1|2|3|45|678|'
$sSrer = StringRegExpReplace($sText, '\D', '')
MsgBox(0, '', $sSrer)
 楼主| 发表于 2011-6-8 17:02:14 | 显示全部楼层
本帖最后由 wzh880801 于 2011-6-8 17:05 编辑

回复 4# 水木子
是这个意思,我想得到一个数组,数组第一个值是1,第二个是2,第三个是3,第四个是45,第五个是678.然后我可以通过数组来调用这些值来计算。也就是依次得到1,2,3,45,678这4个值。
发表于 2011-6-8 17:06:17 | 显示全部楼层
回复 5# wzh880801
哎!沟通有问题!呵呵!
主要是你1楼的 “我想要的结果是得到里面的数字项:1,2,3,45,678。” 这段话误导了我。。。

#include <Array.au3>
$sText = '1|2|3|45|678|'
$sSrer = StringRegExp($sText, '\d+', 3)
_ArrayDisplay($sSrer)
发表于 2011-6-8 17:07:12 | 显示全部楼层
回复 5# wzh880801
1、 \d+
2、 [^\|]+
发表于 2011-6-8 17:07:30 | 显示全部楼层
回复 4# 水木子

我想楼主的意思是要分为; 1  2  3  45  678  这五组数字吧
 楼主| 发表于 2011-6-8 17:08:07 | 显示全部楼层
回复 6# 水木子
OK

谢谢了啊 正则是个好东西 得好好学学了啊 呵呵 以后还请多多指教啊
发表于 2011-6-8 21:04:48 | 显示全部楼层
典型的StringSplit分割
发表于 2011-6-8 21:54:04 | 显示全部楼层
学习了。。。。
发表于 2011-6-9 05:04:15 | 显示全部楼层
回复 10# 3mile

同意,简单的字符串拆分,为什么要用正则
发表于 2011-6-9 16:03:08 | 显示全部楼层
StringSplit
发表于 2011-6-10 06:42:45 | 显示全部楼层
看得云里雾里,努力学习吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 01:18 , Processed in 0.078790 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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