找回密码
 加入
搜索
查看: 5078|回复: 13

[IE类操作] 如何比对“动态”字符串?

  [复制链接]
发表于 2011-1-1 12:02:01 | 显示全部楼层 |阅读模式
“网易电子邮箱 - 极速3.5 - Windows Internet Explorer”
“(214封未读) 网易电子邮箱 - 极速3.5 - Windows Internet Explorer”

一种情况是第一行,固定的字符串。另一种情况是XXX封未读邮件,难点是数字是不确定的。


我需要比较,如何判断?用正则表达式吗。求达人给个代码。
发表于 2011-1-1 12:05:40 | 显示全部楼层
本帖最后由 水木子 于 2011-1-1 12:07 编辑

意思是要得到 “214” ??

\((\d+[^\)]+) ;得 XXX封未读

\((\d+)[^\)]+ ; 得 214 这个位置
 楼主| 发表于 2011-1-1 12:10:03 | 显示全部楼层
我想要的是,如果获取到了
“网易电子邮箱 - 极速3.5 - Windows Internet Explorer”

“(XXX封未读) 网易电子邮箱 - 极速3.5 - Windows Internet Explorer”

这两种情况都符合,然后把它关闭,关键是XXX的位数和具体数字都是可变的。对于这个难题我很纠结
 楼主| 发表于 2011-1-1 12:14:20 | 显示全部楼层
本帖最后由 黑菜 于 2011-1-1 12:16 编辑

我想实现的大概目的是这样的,(语句写的不对),您懂我意思的,求修正~~~~

$oIE1 = _IECreate($wangzhi, 1, 1, 1)
$wintitle = WinGetTitle("")
While $wintitle = "网易电子邮箱 - 极速3.5 - Windows Internet Explorer" or $wintitle = (" XXXXX封未读) 网易电子邮箱 - 极速3.5 - Windows Internet Explorer")
                Sleep(500)
                        WinClose("网易电子邮箱 - 极速3.5 - Windows Internet Explorer") or WinClose(" XXXXXX封未读) 网易电子邮箱 - 极速3.5 - Windows Internet Explorer")
                $wintitle = WinGetTitle("")
WEnd
发表于 2011-1-1 12:14:40 | 显示全部楼层
哦!你是不是要做网页监控哦?
 楼主| 发表于 2011-1-1 12:15:08 | 显示全部楼层
哦!你是不是要做网页监控哦?
水木子 发表于 2011-1-1 12:14



    嗯,对,差不多是的
发表于 2011-1-1 12:24:23 | 显示全部楼层
如果是这样的话,感觉没必要用正则,用 StringInStr 就行了!
 楼主| 发表于 2011-1-1 12:26:19 | 显示全部楼层
可是,“网易电子邮箱 - 极速3.5” 这个之前是多少封未读邮件的数字是不确定的,而且有没有“未读邮件”也是不确定的。
我感觉这难题非常纠结!
发表于 2011-1-1 12:35:33 | 显示全部楼层
反过来想! 网易电子邮箱 - 极速3.5 - Windows Internet Explorer  这个是确定的,是吧!

只要有符合这段字符串就可以吧?
 楼主| 发表于 2011-1-1 12:36:32 | 显示全部楼层
反过来想! 网易电子邮箱 - 极速3.5 - Windows Internet Explorer  这个是确定的,是吧!

只要有符合这段 ...
水木子 发表于 2011-1-1 12:35


是的。这段是确定的!可是WinClose函数必须明确标题啊
 楼主| 发表于 2011-1-1 12:40:24 | 显示全部楼层
$wintitle = WinGetTitle("")
MsgBox(0,0,$wintitle)
        if StringInStr ($wintitle,"网易电子邮箱 - 极速3.5 - Windows Internet Explorer") Then
                Sleep(500)
                WinClose($wintitle)
endif


可以了

感谢版主大哥点拨!!!



话说,如果给自己个难题,要正则表达式方式来实现,版主大哥有方法吗
发表于 2011-1-1 12:58:29 | 显示全部楼层
$wintitle = WinGetTitle("")
MsgBox(0,0,$wintitle)
        if StringInStr ($wintitle,"网易电子邮箱 - 极速3 ...
黑菜 发表于 2011-1-1 12:40


谁说的? Opt('WinTitleMatchMode', 2)
 楼主| 发表于 2011-1-1 13:11:16 | 显示全部楼层
谁说的? Opt('WinTitleMatchMode', 2)
水木子 发表于 2011-1-1 12:58



    又学到一样,谢谢!
发表于 2011-1-2 00:49:51 | 显示全部楼层
看来 标题部分还是需要传播啊  新手参看我前面里的文章
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-16 18:27 , Processed in 0.085237 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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