正则表达式拒绝任何不包含任何这些字符的字符串?

时间:2017-06-16 09:21:27

标签: python regex

我想创建一个python函数,它接受一个单词作为参数,并使用正则表达式包re来拒绝包含除“0123456789:MF”和“\ s”之外的任何字符的单词。

结构:

def function(word):
    pattern = re.compile('REGEXHERE')
    if pattern.match(word):
         return True
    else:
         return False

问题在于我不知道那样做的正则表达式。

由于我无法回答我自己的问题,我在这里发布了@MartinBonner提供的解决方案,该解决方案运行得很好:

def function(word):
    return not re.compile('[^0-9::MF\\s]').search(word)

2 个答案:

答案 0 :(得分:1)

使用字符类。你的正则表达式应该是:

'[\\d:MF\\s]+'

为确保整个字符串匹配,请使用^$围绕它:

'^[\\d:MF\\s]+$'

答案 1 :(得分:0)

如果您指的是正则表达式保留字中的\s,请执行此操作

^[\d:MF\s]+$