找回密码
 加入
搜索
查看: 4426|回复: 24

正则匹配问题

[复制链接]
发表于 2009-5-25 13:59:11 | 显示全部楼层 |阅读模式
本帖最后由 jhkdqaa 于 2009-5-31 11:37 编辑

岂有此理!我的帖子全是毒药,就没有人回复的
这次的问题是正则匹配。
$array = StringRegExp("<a href='javascript:updateProductItem(' CA03311545', ' GC03311520')'>", "<a href='javascript:updateProductItem(.{0,30})'>", 1)
可以获得(' CA03311545', ' GC03311520')
当匹配语句变成变量时候就没有结果了
$array = StringRegExp($temps, "<a href='javascript:updateProductItem(.{0,30})'>", 1)
其中$temps = _INetGetSource($oIE)
是一个网页,网页中含有1-10个应该能成功匹配的结果。
请高手帮忙纠正下
听说被鄙视了.所以某人在24楼加上了正确答案
原来lynfr8的意思是请无视他们这些高手发出答案来教导新人
发表于 2009-5-25 14:52:04 | 显示全部楼层
检查_INetGetSource($oIE)返回值。

#include <Array.au3>

$array = StringRegExp("<a href='javascript:updateProductItem(' CA03311545', ' GC03311520')'>", "<a href='javascript:updateProductItem(.{0,30})'>", 1)
_ArrayDisplay($array) ; 显示 [0]|(' CA03311545', ' GC03311520')

;$temps = _INetGetSource($oIE)
$temps = "<a href='javascript:updateProductItem(' CA03311545', ' GC03311520')'>"
$array = StringRegExp($temps, "<a href='javascript:updateProductItem(.{0,30})'>", 1)
_ArrayDisplay($array) ; 显示 [0]|(' CA03311545', ' GC03311520')
发表于 2009-5-25 14:55:47 | 显示全部楼层
补充,用StringCompare函数比较一下返回值。注意,正则默认是匹配大小写的。
发表于 2009-5-25 14:57:02 | 显示全部楼层
我看到第一句话 就想说
当一件事情你找不到原因的话 请找找自己的原因
ps:我不懂正则
 楼主| 发表于 2009-5-25 15:10:10 | 显示全部楼层
谢谢2.3楼,一会去试下。对于4楼的回复,我很感激会有高手帮忙解答问题,但如果没有,我不也已经走到这一步了么?你怎么知道我没有找自己的原因?很多问题我都是自己摸索的。这样要浪费N多N多时间。这是我来这里寻求帮助的原因。你轻飘飘的一句话是为了显示你的高人一等还是打击新手的积极性?如果都不是请你以后不要给新手这种回复了。
发表于 2009-5-25 15:11:11 | 显示全部楼层
我见到正则就怕

试试 _IEDocReadHTML 代替下 _INetGetSource
发表于 2009-5-25 15:12:41 | 显示全部楼层
谢谢2.3楼,一会去试下。对于4楼的回复,我很感激会有高手帮忙解答问题,但如果没有,我不也已经走到这一步了么?你怎么知道我没有找自己的原因?很多问题我都是自己摸索的。这样要浪费N多N多时间。这是我来这里寻求 ...
jhkdqaa 发表于 2009-5-25 15:10

我是不是装b的人..大家心里明白
如果你无法体会我发帖的心情 那我对你说声对不起
 楼主| 发表于 2009-5-25 15:19:43 | 显示全部楼层
米事,我相信你,不我我见多了装B的人。怕怕滴。。。。
 楼主| 发表于 2009-5-25 15:23:00 | 显示全部楼层
我见到正则就怕

试试 _IEDocReadHTML 代替下 _INetGetSource
lynfr8 发表于 2009-5-25 15:11

我也怕了~~~
你们讲的我都试了下 还是不行哦,就是连改下前面的字符串,一模一样的复制下都不行哦,只能检测一遍。
$array = StringRegExp("href='javascript:updateProductItem(' CA03311545', ' GC03311520'),href='javascript:updateProductItem(' CA03311545', ' GC03311521')", "javascript:updateProductItem(.{0,30})\)", 1)
出来的答案只有一个哦。晕死了
发表于 2009-5-25 15:31:55 | 显示全部楼层
虽然我不懂正则 不过我看只有2种方法吧
1.检查返回的内容是什么
2.看正则对不对 用PCRE测试下看看
 楼主| 发表于 2009-5-25 15:33:11 | 显示全部楼层
搞定了,谢谢大家,原来是偏移量问题
被菜鸟我无视了 所以。。。。。
 楼主| 发表于 2009-5-25 16:05:14 | 显示全部楼层
感谢大家
发表于 2009-5-25 17:03:49 | 显示全部楼层
在这里我支持下sxd
有些问题我都想发帖问的,感觉那样答案来的更快
只是很多时候我都忍着
都还在尝试自己去搜索答案
很多时候在水尽山穷的时候柳暗花明又一村
答案出来了
那种感觉比发帖得到答案更有成就感
因为那样证明了自己解决问题的能力还有一定的
同样
针对此贴而言
很多人正则确实是不是很厉害的
如果楼主你学到了东西尤其是关于正则的
会否想过写些心得或者教程大家共享下?
还是把这里当成了技术救援机构只管自己要答案
请谅解下类似sxd发上面那些帖子的心情
并不是那种你想的装B
高手也不是你想象中的那么喜欢高高在上气焰嚣张
反是问问题的人要想想为什么自己的问题就是毒药了没人回答?
反思就是一种进步
这就是sxd想要表达的
至少是我体会到的
如果他是想高高在上的低视菜鸟
这个论坛会有这么多人得到过sxd的帮助?
其实
有人帮你是你的运气
没有人帮你也是天理
学技术就当自强
忠言逆耳利于行
你看sxd说了你几句不喜欢听的你不就自己找出答案了吗
只是
你的答案有公布出来分享下吗?
如果其他人看到这个贴和你有着共同的疑惑
而这里问题是解决了但答案却不知道在哪里
试问下
你是为自己还是为论坛着想
这样的求知心态你觉得有利于论坛氛围吗?
如果大家都学你
解决完就走
这个论坛还有什么意义
分享??
只是索取而已!!!
下次你再问问题即使能帮你解决的都不管而过了
啰嗦一大堆
只是还是那句话:
技术论坛缺的不是高手
而是懂得分享的会员
发表于 2009-5-25 17:13:21 | 显示全部楼层
补充几句
sxd是我不可多见的不随便灌水的人
他的解答很多都是干净利落的
能做到说话让人觉得有分量而且是发自内心的
这个论坛确实不多
发表于 2009-5-25 17:45:28 | 显示全部楼层
to sxd、lynfr8:
相信两位都是因楼主的第一句话有感而发。我刚才看到时也有想法,说说我个人的感受吧。
任何一个技术型论坛,都会有只会索取拿了就跑的人存在。同样,也必然会有积极交流无私奉献的人存在。不必因为前者而失望,而忽略了后者。论坛存在的目的虽然是交流,但既然是公共场合,总会有目标不同的人员来往。不要因别人的行为影响自己的心情,因为至少,我有保持沉默的权力。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 11:04 , Processed in 0.083393 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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