如何判断一个字符串是否包含特定的所有字符?

3

例如:

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

我尝试过(c)+(k)+(z)[ckz],但显然都是错误的。我感觉这是一个简单的任务,但我却找不到答案。


8
需要使用正则表达式吗? all(x in string for x in 'czk') - agf
1
没有正则表达式,您可以使用以下方法: set('czk').issubset(your_string) - jfs
2个回答

4
最自然的方法可能是使用集合而不是正则表达式,就像这样:
set('czk').issubset(s)

大多数情况下,在不频繁使用正则表达式的情况下编写代码会更加简单易懂,且维护成本更低。


1

基本上,您需要先对字符串进行排序,以便获得“ackz”,然后可以使用正则表达式/.*c.*k.*z.*/ 进行匹配。


1
新的regex库直接支持“模糊”匹配:/(?:ckz){i}/ - jfs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接