regex - 正则表达式:匹配除单个单词之外的所有内容
问题描述
我不知道如何创建一个匹配所有内容的正则表达式,除了一个固定的单个单词。有人可以帮助我吗?
背景:邮件服务器的别名映射,将所有邮件重定向到一个用户。/.*/ -> user1
产生一个重定向循环,所以我需要user1
从正则表达式中排除。
编辑:
正则表达式应该匹配所有内容,除了单个单词user1。它还应该匹配包含该单词的输入,即user11。
即:/.*/ 没有user1
编辑2:
POSIX 基本正则表达式
解决方案
您可以使用^(?!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 匹配
推荐阅读
- python - 在 for 循环中分别增加 2 个不同的参数
- python - 在streamlit中加载模型进行预测时Mask Rcnn模型形状错误
- python - PermissionError:[Errno 13] 权限被拒绝:'C:\\Windows\\System32\\catroot2\\edb.log'
- java - 如何在Java中找到字符串中日期和时间的第一个索引
- angular - ngXs lambda 选择如何知道要查看哪个状态?
- netlogo - NetLogo中的内存转储,有可能吗?
- sql-server - 筛选表并将其从 SQL Server 移动到 MS Access
- python - 从 s3 加载 FastText 模型而不在本地保存
- apache-kafka - 使用 kafka-json-schema-console-consumer 使用 JSON 消息时打印密钥
- c# - Microsoft Graph 发送相同的消息