黑菜 发表于 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 http://www.autoitx.com/images/common/back.gif


    嗯,对,差不多是的

水木子 发表于 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 http://www.autoitx.com/images/common/back.gif

是的。这段是确定的!可是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


可以了{:face (319):}

感谢版主大哥点拨!!!



话说,如果给自己个难题,要正则表达式方式来实现,版主大哥有方法吗

水木子 发表于 2011-1-1 12:58:29

$wintitle = WinGetTitle("")
MsgBox(0,0,$wintitle)
        if StringInStr ($wintitle,"网易电子邮箱 - 极速3 ...
黑菜 发表于 2011-1-1 12:40 http://www.autoitx.com/images/common/back.gif

谁说的? Opt('WinTitleMatchMode', 2)

黑菜 发表于 2011-1-1 13:11:16

谁说的? Opt('WinTitleMatchMode', 2)
水木子 发表于 2011-1-1 12:58 http://www.autoitx.com/images/common/back.gif


    又学到一样,谢谢!

sxd 发表于 2011-1-2 00:49:51

看来 标题部分还是需要传播啊新手参看我前面里的文章
页: [1]
查看完整版本: 如何比对“动态”字符串?