关于正则表达式匹配窗口标题的问题【已解决】
本帖最后由 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 = ""
Run(@ProgramFilesDir & "xxx\test.exe")
If Not WinWaitActive($MY_WINDOW, "", 3) Then MsgBox(48, "Error", "Fail to open window") 我想是不是这样:“\w*”里头应该匹配了“-”了吧? 本帖最后由 lpxx 于 2010-5-12 11:25 编辑
最近穷死了,骗点分^Title \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} \-+\-.*$就看你要不要空格了Title \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} \-+\-
LZ 的代码我这测试正常。
不正常的原因可能有2:
1,WinWaitActive 3s timeout 可能不够,尝试调整更大的数值;
2,Active 的问题,尝试使用如下代码测试:
If Not WinWait($MY_WINDOW, "", 3) Then MsgBox(48, "Error", "Fail to open window") 本帖最后由 xiehuahere 于 2010-5-12 13:40 编辑
回复 3# lpxx
谢谢啊,小费免不了的,呵呵
问一下啊,\u4e00-\u9fa5 是Unicode十六进制代码?什么意思?
还有,“-”和“.”前需要用转义符\吗? 本帖最后由 xiehuahere 于 2010-5-12 14:07 编辑
回复 4# afan
多谢版主关注。我这里列出的例子的确是可以的。
我又尝试了一下,发现实际中"-"后面的字符串含有空格,这个超出了\w能表达的范畴导致。
使用 [\w ]*来匹配,改为:
^TitleTEST \d.\d\d.\d.\d - [\w ]*- [\w ]*$
测试OK。 回复 5# xiehuahere
没仔细看你的题目要求,\u4e00-\u9fa5匹配汉字
页:
[1]