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

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

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

love5173 发表于 2011-6-8 17:07:12

回复 5# wzh880801
1、 \d+
2、 [^\|]+

minghui 发表于 2011-6-8 17:07:30

回复 4# 水木子

我想楼主的意思是要分为; 12345678这五组数字吧

wzh880801 发表于 2011-6-8 17:08:07

回复 6# 水木子
OK

谢谢了啊 正则是个好东西 得好好学学了啊 呵呵 以后还请多多指教啊

3mile 发表于 2011-6-8 21:04:48

典型的StringSplit分割

abc... 发表于 2011-6-8 21:54:04

学习了。。。。

netegg 发表于 2011-6-9 05:04:15

回复 10# 3mile

{:face (72):}同意,简单的字符串拆分,为什么要用正则

zysanjing1 发表于 2011-6-9 16:03:08

StringSplit

紫色风林 发表于 2011-6-10 06:42:45

看得云里雾里,努力学习吧
页: [1]
查看完整版本: 这个正则怎么写?大家教我下啊!