2011-09-04 111 views
3

例如:如何查找字符串是否包含所有特定字符?

Characters to match: 'czk' 
string1: 'zack' Matches 
string2: 'zak' Does not match 

我试图(c)+(k)+(z)[ckz]这显然是错误的。我觉得这是一个简单的任务,但我无法找到答案

+8

它是否必须是正则表达式? 'all(x in'x'in'czk')' – agf

+1

没有正则表达式,你可以:'set('czk')。issubset(your_string)' – jfs

回答

4

最自然的方式将可能是使用集,而不是正则表达式,像这样

set('czk').issubset(s) 

代码很简单,经常,更易于维护,而不使用正则表达式多。

1

基本上你必须先排序字符串,所以你得到“ackz”,然后你可以使用像/.*c.*k.*z.*/正则表达式来匹配。

+1

new [regex](http://pypi.python.org/pypi/regex)库直接支持“模糊”匹配:'/(?: ckz){i} /'。 – jfs

相关问题