2010-08-20 81 views
3

assertRegexMatches的说,我有一个正则表达式相当于在Python 2.4

REGEX = re.compile('.*foo{') 

你怎么会写一组字符串相匹配使用Python 2.4单元测试?

我知道在Python 2.7,我可以使用assertRegexMatches,可惜这并不在2.4工作:/

我用self.assertEqual我的测验休息。

干杯, 中号

+0

只是为了澄清 - 它是2.7中的assertRegexpMatches'(注意p),而在Python 3中只是'assertRegex'。 – 2017-10-05 17:09:02

回答

2

既然你问了一组字符串,而不是一个字符串

def createMatcher(self, regex): 
    def matchCheck(argument): 
     self.assertTrue(regex.match(argument)) 
    return matchCheck 

然后在你的函数:

map(self.createMatcher(REGEX), mySetOfStrings) 
+0

太棒了!非常感谢:) M – Martin 2010-08-20 18:53:37

2

如果你想完全匹配,你可以这样做:

assertTrue(REGEX.match(data)) 

如果你不关心它,然后匹配:

assertTrue(REGEX.search(data)) 

记住匹配和搜索之间的difference。此外,如果您非常喜欢,您可以继承TestCase,并添加自己的断言来完成上述操作。

4
self.assertTrue(REGEX.match(text))