找回密码
 加入
搜索
查看: 2899|回复: 6

[AU3基础] 关于正则表达式匹配窗口标题的问题【已解决】

  [复制链接]
发表于 2010-5-12 10:46:12 | 显示全部楼层 |阅读模式
本帖最后由 xiehuahere 于 2010-5-12 14:48 编辑

学习正则表达式,遇到点问题。

窗口标题格式为:TitleTEST 1.12.2.3 - My_Name  - HelloKitty
说明:
1)需要精确匹配的字符串:TitleTEST以及两个“-”连接符
2)其他:1.12.2.3为版本号,数字位数固定;两个“-”之后的字符串可以包含字母、数字、下划线或汉字。

我参照《正则表达式30分钟入门教程》http://deerchao.net/tutorials/regex/regex.htm写的如下脚本,总是弹出失败对话框。
Opt("WinTitleMatchMode", 4)
Const $MY_WINDOW = "[REGEXPTITLE:^TitleTEST \d.\d\d.\d.\d - \w*  - \w*$]"
Run(@ProgramFilesDir & "xxx\test.exe")
If Not WinWaitActive($MY_WINDOW, "", 3) Then MsgBox(48, "Error", "Fail to open window")

评分

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

查看全部评分

发表于 2010-5-12 11:09:44 | 显示全部楼层
我想是不是这样:“\w*”里头应该匹配了“-”了吧?
发表于 2010-5-12 11:21:17 | 显示全部楼层
本帖最后由 lpxx 于 2010-5-12 11:25 编辑

最近穷死了,骗点分
^Title \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} \-[a-zA-Z0-9_\u4e00-\u9fa5]+\-.*$
就看你要不要空格了
Title \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} \-[a-zA-Z0-9_\u4e00-\u9fa5 ]+\-

评分

参与人数 2金钱 +37 收起 理由
lynfr8 + 22
xiehuahere + 15 谢谢帮忙,不过这点小财不足以让你脱贫啊

查看全部评分

发表于 2010-5-12 11:47:49 | 显示全部楼层
LZ 的代码我这测试正常。
不正常的原因可能有2:
1,WinWaitActive 3s timeout 可能不够,尝试调整更大的数值;
2,Active 的问题,尝试使用如下代码测试:
If Not WinWait($MY_WINDOW, "", 3) Then MsgBox(48, "Error", "Fail to open window")

评分

参与人数 1金钱 +10 收起 理由
xiehuahere + 10 个人疏忽,浪费版主时间了,致歉

查看全部评分

 楼主| 发表于 2010-5-12 13:24:12 | 显示全部楼层
本帖最后由 xiehuahere 于 2010-5-12 13:40 编辑

回复 3# lpxx

谢谢啊,小费免不了的,呵呵
问一下啊,\u4e00-\u9fa5 是Unicode十六进制代码?什么意思?
还有,“-”和“.”前需要用转义符\吗?
 楼主| 发表于 2010-5-12 13:30:24 | 显示全部楼层
本帖最后由 xiehuahere 于 2010-5-12 14:07 编辑

回复 4# afan

多谢版主关注。我这里列出的例子的确是可以的。
我又尝试了一下,发现实际中"-"后面的字符串含有空格,这个超出了\w能表达的范畴导致。
使用 [\w ]*来匹配,改为:
^TitleTEST \d.\d\d.\d.\d - [\w ]*  - [\w ]*$
测试OK。
发表于 2010-5-12 20:31:59 | 显示全部楼层
回复 5# xiehuahere


没仔细看你的题目要求,\u4e00-\u9fa5匹配汉字
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-3 13:02 , Processed in 0.075801 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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