找回密码
 加入
搜索
查看: 2641|回复: 3

[效率算法] [已解决]使用正则将需要的内容赋值给变量

[复制链接]
发表于 2010-8-13 16:28:09 | 显示全部楼层 |阅读模式
本帖最后由 Ziya 于 2010-8-13 17:09 编辑
var IPData = new Array("123.124.125.126","","河南省","郑州市");


字串文本如上

现在想使用正则将引号中的内容赋值给几个不同的变量
试写代码如下
$str = 'var IPData = new Array("123.124.125.126","","河南省","郑州市");'

$ip = StringRegExpReplace($str,'.*"(.*?)"[,]"(.*?)"[,]"(.*?)"[,]"(.*?)".*',"\1")
$shi = StringRegExpReplace($str,'.*"(.*?)"[,]"(.*?)"[,]"(.*?)"[,]"(.*?)".*',"\3")
$sheng = StringRegExpReplace($str,'.*"(.*?)"[,]"(.*?)"[,]"(.*?)"[,]"(.*?)".*',"\4")

MsgBox(0,"","您的IP为"&$ip&@CRLF&"地址为"&$sheng&","&$shi)
感觉我想到的这个方法有些笨,再优化也只能去精简一下给变量赋值的正则表达式,但还是需要进行3次操作
想问问看有没有更好的方法给这几个变量赋值

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-8-13 16:59:09 | 显示全部楼层
$sString = 'var IPData = new Array("123.124.125.126","","河南省","郑州市");'
$aReg = StringRegExp($sString, '".*?"', 3)
MsgBox(0, '', "您的IP为:" & $aReg[0] & @CRLF & '地址为:' & $aReg[2] & "," & $aReg[3])

评分

参与人数 2威望 +2 金钱 +10 收起 理由
Ziya + 10
afan + 2

查看全部评分

 楼主| 发表于 2010-8-13 17:08:57 | 显示全部楼层
原来可以这样,感谢指点
发表于 2010-8-13 17:13:34 | 显示全部楼层
本帖最后由 afan 于 2010-8-13 17:16 编辑
Local $Str = 'var IPData = new Array("123.124.125.126","","河南省","郑州市")'
Local $sR = StringRegExp($str, '"(.*?)"', 3)
Local $ip = $sR[0], $shi = $sR[3], $sheng = $sR[2]
Msgbox(0, 0, StringFormat('您的IP为:%s \n地址为:%s%s ', $ip, $sheng, $shi))
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 00:13 , Processed in 0.161621 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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