【问题标题】:Why the Regular Expression didn't work well in Pywinauto为什么正则表达式在 Pywinauto 中不能很好地工作
【发布时间】:2016-02-19 02:22:47
【问题描述】:
from pywinauto import application

app=application.Application()
3. app.connect(title_re = "/Zero Hedge$/")
4. app.connect(title_re = "/| Zero Hedge/")

我想得到一个这样的 Chrome 窗口:http://www.zerohedge.com/news/2016-02-18/markets-ignore-fundamentals-and-chase-headlines-because-they-are-dying

正如您在访问网站时所看到的,网站标题的最后部分包含“|零对冲”或仅包含“零对冲”。

但是,无论是第 3 行还是第 4 行,我仍然会收到 WindowNotFoundError。为什么正则表达式不起作用?

感谢您的帮助!

【问题讨论】:

  • 您的第一个正则表达式可能不起作用,因为您使用“$”作为字符串锚点的结尾,但您在它后面加上另一个字符“/”。第二个正则表达式可能不起作用,因为“|”是正则表达式中的 or 运算符,因此您需要使用“\”对其进行转义。详情请见:regular-expressions.info/anchors.html
  • 首先,非常感谢您的帮助!我在一个中文网站上学习了正则表达式,它说如果我想在最后检测某个字符串,我应该使用“/str$/”。所以你的意思是我应该删除最后一个“/”。像这样: app.connect(title_re = "/Zero Hedge$") ?关于第二个正则表达式,我添加了一个“\”,如下所示:app.connect(title_re = "/\| Zero Hedge/")。它仍然无法正常工作...但是,非常感谢您的帮助!
  • 再次尝试您的正则表达式,不要使用前导和尾随“/”字符。
  • 天哪,我用这个:app.connect(title_re = "\| 零对冲")。仍然无法正常工作...它总是引发 WindowNotFoundError。
  • 嗯...我使用 app.connect(title_re = "| Zero Hedge") 并且它有效。但是它发现很多窗口都匹配它。我想我必须创建一个不同的主题来弄清楚会发生什么。

标签: python regex google-chrome pywinauto


【解决方案1】:

试试这个以获得所有窗口/标题的列表:

from pywinauto import findwindows

print findwindows.find_windows(title_re=".*")

这应该会为您提供所有窗口的列表,然后根据结果构建您的正则表达式。

【讨论】:

    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多