2

为什么这个正则表达式不起作用?

import re
i="<wx._controls.Button; proxy of <Swig Object of type 'wxButton *' at 0x2d040b0> >"
m = re.match("controls(.*)[;]", i)
if m:
    print m.group(1)

它什么也不返回。我正在尝试将所有内容置于“控制”和“;”之间 此解决方案适用于其他测试用例,但不适用于此测试用例。

4

2 回答 2

5

re.match仅匹配字符串的开头。你想要re.search

但是,看起来您正在评估repr对象的结果以获取类名。为什么不直接使用obj.__class__.__name__呢?关于使用鸭子类型并避免特定于单个类的代码。

于 2012-05-26T18:21:05.577 回答
4

.match()从一开始就看起来。你想要.search()

于 2012-05-26T18:20:31.740 回答