首页 > 解决方案 > 正则表达式:匹配除单个单词之外的所有内容

问题描述

我不知道如何创建一个匹配所有内容的正则表达式,除了一个固定的单个单词。有人可以帮助我吗?

背景:邮件服务器的别名映射,将所有邮件重定向到一个用户。/.*/ -> user1产生一个重定向循环,所以我需要user1从正则表达式中排除。

编辑:

正则表达式应该匹配所有内容,除了单个单词user1。它还应该匹配包含该单词的输入,即user11

即:/.*/ 没有user1

编辑2:

POSIX 基本正则表达式

标签: regex

解决方案


您可以使用^(?!user1$). 出于检查目的,您可以将 python 用作:

import re
if(re.match('^(?!user1$)','user11')):
  print('user11 matched')

if(re.match('^(?!user1$)','user1')):
  print('user1 matched')

if(re.match('^(?!user1$)','AnyThingElseBeforeuser1')):
  print('AnyThingElseBeforeuser1 matched')

输出如您所愿:

user11 匹配

AnyThingElseBeforeuser1 匹配


推荐阅读