正则表达式之间的所有东西,Python

时间:2012-05-26 18:18:37

标签: python regex wxpython wxwidgets

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

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)

它什么都不返回。我试图让一切介于两者之间,“控制”和“;” 此解决方案适用于其他测试用例,但不适用于此。

2 个答案:

答案 0 :(得分:5)

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

但是,您似乎正在评估对象上repr的结果以获取类名。为什么不直接使用obj.__class__.__name__?使用duck typing并避免特定于各个类的代码。

答案 1 :(得分:4)

.match()从头开始。你想要.search()