我想使用正则表达式查看是否存在除某个集合之外的任何字符。
例如,我想在字符串中测试字母'p','v','c'。如果字符串中有任何其他字符,我希望测试返回True。如果只存在'p','v','c'或其组合,我希望测试返回False。
'v'返回False
'pv'返回False
'pvc'返回False
'pd'返回True
'p('返回True
'apvc'返回True
'xyz'返回True
我如何使用re表达这个? 感谢。
答案 0 :(得分:5)
使用set(..)
if set(yourString) - set("pvc"):
return True
else:
return False
编辑:这应该变成一个表达式。
return set(your_string) - set('pvc')
答案 1 :(得分:3)
我认为这最直接地捕捉了你的意图:
any(char not in 'pvc' for char in mystring)
任何阅读代码的人都应该清楚自己想要做什么。
答案 2 :(得分:2)
import re
not (re.search('^[pvc]+$', string))
如果字符串为空,不确定你想要什么,这个将返回true。
答案 3 :(得分:0)
import re
x = 'pvc'
regex = re.compile(r'[^p|v|c]')
if regex.search(x) is not None:
print True
else:
print False