正则表达式,测试以查看是否存在其他字符

时间:2016-07-05 04:00:25

标签: python regex

我想使用正则表达式查看是否存在除某个集合之外的任何字符。

例如,我想在字符串中测试字母'p','v','c'。如果字符串中有任何其他字符,我希望测试返回True。如果只存在'p','v','c'或其组合,我希望测试返回False。

'v'返回False

'pv'返回False

'pvc'返回False

'pd'返回True

'p('返回True

'apvc'返回True

'xyz'返回True

我如何使用re表达这个? 感谢。

4 个答案:

答案 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