awfymwvf 发表于 2010-6-7 14:53:27

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

本帖最后由 awfymwvf 于 2010-6-8 08:16 编辑

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

谢谢大家

采用afan版主的方法解决

水木子 发表于 2010-6-7 15:20:22

本帖最后由 水木子 于 2010-6-7 15:36 编辑

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

awfymwvf 发表于 2010-6-7 15:27:21

当我把字符串改成a: (6635AS) gCCAADDWIDMfg这样的时候
返回的不是a=mms了
水木子大侠,这时候要怎么办啊。用什么样的正则啊

水木子 发表于 2010-6-7 15:40:43

本帖最后由 水木子 于 2010-6-7 15:43 编辑

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

诸如类似正则问题,如字符串有多种变化,尽量都举例出来,这样方便取其特征书写表达式。
单凭一条字符串有时不好处理,或者是咱能力还不够。

awfymwvf 发表于 2010-6-7 16:19:32

StringRegExp返回了一个数组。我不想让它返回一个数组。可以换成StringRegExpReplace来执行吗?

afan 发表于 2010-6-7 16:51:12

$str = 'a: (6635AS) gCCAADDWIDMfg'
$str = StringRegExpReplace($str, '(\w)\:.*?\[(.+)\].+', '$1=$2')
MsgBox(0, '', $str)

3mile 发表于 2010-6-7 17:10:33

$sText = 'a: (6635AS) gCCAADDWIDMfg'
$aReg = StringRegExpReplace($sText, '(\:.*?\[)','=')
$bReg=StringRegExpReplace($aReg,'\].*','')
MsgBox(0, '', $bReg)
页: [1]
查看完整版本: 关于提取字符串中某关键字符的问题