找回密码
 加入
搜索
查看: 1326|回复: 6

关于提取字符串中某关键字符的问题

  [复制链接]
发表于 2010-6-7 14:53:27 | 显示全部楼层 |阅读模式
本帖最后由 awfymwvf 于 2010-6-8 08:16 编辑

有这样的一个字符串,比如
a: (6635AS) [MMS] CCAADDWIDM
我现在想要把这段字符串简化成a=mms,应该怎么做呢,
还是正则表达式的问题,可是我真的不会
中括号后面的字符串长短不一定,

谢谢大家

采用afan版主的方法解决
发表于 2010-6-7 15:20:22 | 显示全部楼层
本帖最后由 水木子 于 2010-6-7 15:36 编辑

这个问题好眼熟!
$sText = 'a: (6635AS) [MMS] CCAADDWIDM'
$aReg = StringRegExp($sText, '(\w)\:|\[(.*?)\]', 3)
MsgBox(0, '', $aReg[0] & '=' & $aReg[2])

评分

参与人数 1贡献 +1 收起 理由
lynfr8 + 1

查看全部评分

 楼主| 发表于 2010-6-7 15:27:21 | 显示全部楼层
当我把字符串改成a: (6635AS) [MMS]gCCAADDWIDMfg[dddddddddd]这样的时候
返回的不是a=mms了
水木子大侠,这时候要怎么办啊。用什么样的正则啊
发表于 2010-6-7 15:40:43 | 显示全部楼层
本帖最后由 水木子 于 2010-6-7 15:43 编辑

回复 3# awfymwvf
2楼代码我已经修改了,再试试吧!

诸如类似正则问题,如字符串有多种变化,尽量都举例出来,这样方便取其特征书写表达式。
单凭一条字符串有时不好处理,或者是咱能力还不够。
 楼主| 发表于 2010-6-7 16:19:32 | 显示全部楼层
StringRegExp返回了一个数组。我不想让它返回一个数组。可以换成StringRegExpReplace来执行吗?
发表于 2010-6-7 16:51:12 | 显示全部楼层
$str = 'a: (6635AS) [MMS]gCCAADDWIDMfg[dddddddddd]'
$str = StringRegExpReplace($str, '(\w)\:.*?\[(.+)\].+', '$1=$2')
MsgBox(0, '', $str)

评分

参与人数 2金钱 +25 收起 理由
lynfr8 + 5 $1=$2。。。再次学习了!
水木子 + 20 不愧是正则之神

查看全部评分

发表于 2010-6-7 17:10:33 | 显示全部楼层
$sText = 'a: (6635AS) [MMS]gCCAADDWIDMfg[dddddddddd]'
$aReg = StringRegExpReplace($sText, '(\:.*?\[)','=')
$bReg=StringRegExpReplace($aReg,'\].*','')
MsgBox(0, '', $bReg)

评分

参与人数 2金钱 +20 贡献 +1 收起 理由
lynfr8 + 1
水木子 + 20 学习了!

查看全部评分

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

本版积分规则

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

GMT+8, 2024-10-6 12:19 , Processed in 0.117425 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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