找回密码
 加入
搜索
查看: 6868|回复: 10

[系统综合] 如何用正则获取指定内容?

  [复制链接]
发表于 2010-4-21 22:02:16 | 显示全部楼层 |阅读模式
悬赏30金钱已解决
字符串如下:
var ILData = new Array("A1","B1", "C1", "D1", "E1"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); } 
如何用正则分别获取A1,B1,C1,D1和E1?

最佳答案

发表于 2010-4-21 22:02:17 | 显示全部楼层
#include<array.au3>
$String='var ILData = new Array("A1","B1", "C1", "D1", "E1","爱谁谁","跑不了你的"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); }'
$strtemp=StringRegExp($string,'\("[^()]*?\)',3)
;_ArrayDisplay($strtemp)
If IsArray($strtemp) Then $strfin=StringRegExp($strtemp[0],'"[^"]*?"',3)
_ArrayDisplay($strfin)
发表于 2010-4-21 22:09:12 | 显示全部楼层
如果我没有理解错的话,楼主代码框里的是字符串。
#include <array.au3>
$str='"var ILData = new Array("A1","B1", "C1", "D1", "E1"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); } "'
$arr=StringRegExp($str,'"\w\d"',3)
_ArrayDisplay($arr)
 楼主| 发表于 2010-4-21 22:17:27 | 显示全部楼层
本帖最后由 l4ever 于 2010-4-21 22:20 编辑
如果我没有理解错的话,楼主代码框里的是字符串。
3mile 发表于 2010-4-21 22:09

A1,B1,C1,D1和E1都不是规定的,可能是数字也可能是中文.
也可能不止是2个字符
 楼主| 发表于 2010-4-21 23:59:51 | 显示全部楼层
水木子呢?帮我看看?
发表于 2010-4-22 01:39:21 | 显示全部楼层
#include<array.au3>
$String='var ILData = new Array("A1","B1", "C1", "D1", "E1","爱谁谁","跑不了你的"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); }'
$ArrayTemp = StringRegExp($String,'new Array\((.*)\); if',3)
If IsArray($ArrayTemp) Then $ArrayTemp = $ArrayTemp[0]
$Array = StringRegExp($ArrayTemp,'"(.+?)"',3)
_ArrayDisplay($Array)
 楼主| 发表于 2010-4-22 12:51:05 | 显示全部楼层
#include
$String='var ILData = new Array("A1","B1", "C1", "D1", "E1","爱谁谁","跑不了你的"); if (ty ...
caodongchun 发表于 2010-4-22 01:39


有点眉目,但是如果其中某个字符串可能是空白的,
你的写法返回的是",
发表于 2010-4-22 13:11:25 | 显示全部楼层
建议楼主多举例几种字符串的结构变化,这样方面书写表达式。
发表于 2010-4-22 13:16:30 | 显示全部楼层
取引号内的字符
#include <array.au3>

$str='var ILData = new Array("A1","B1", "C1", "D1", "E1"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); } '

$arr=StringRegExp($str,'"[^"]*"',3)

_ArrayDisplay($arr)
发表于 2010-4-22 16:55:28 | 显示全部楼层
本帖最后由 caodongchun 于 2010-4-22 16:58 编辑

#include<array.au3>
$String='var ILData = new Array("A1","B1", "C1", "D1", "E1","爱谁谁"," ","","跑不了你的",""); if (typeof(ILData_callback) != "undefined") { ILData_callback(); }'
$ArrayTemp = StringRegExp($String,'new Array\((.*)\); if',3)
If IsArray($ArrayTemp) Then $ArrayTemp = $ArrayTemp[0]
$Array = StringRegExp($ArrayTemp,'(?U)"(.*)"',3)
_ArrayDisplay($Array)
MsgBox(0,0,_ArrayToString($Array))

评分

参与人数 1金钱 +25 贡献 +5 收起 理由
l4ever + 25 + 5 采用了你的答案,谢谢你

查看全部评分

发表于 2010-4-22 16:59:40 | 显示全部楼层
取引号内的字符
doshowyam 发表于 2010-4-22 13:16


似乎不需要undefined
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-11 19:36 , Processed in 0.079654 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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