Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式:不在列表中-Python_Python_Regex_Regex Negation - Fatal编程技术网

正则表达式:不在列表中-Python

正则表达式:不在列表中-Python,python,regex,regex-negation,Python,Regex,Regex Negation,是否有一种方法可以在表达式中包含检查项目是否不在列表中的功能 我的情况是,我有一个单词列表: listA = ["Abc","Def","etc"] 我想做的是在匹配正则表达式的地方执行匹配,但匹配不包含列表中给出的任何单词 我可以在没有正则表达式的情况下做到这一点,但我想知道Python中是否有一种内置的方法来做到这一点 例如: names = ["David","John","Bob"] x = "From John@email.com Sat Jan 5 09:14:16 2008"

是否有一种方法可以在表达式中包含检查项目是否不在列表中的功能

我的情况是,我有一个单词列表:

listA = ["Abc","Def","etc"]
我想做的是在匹配正则表达式的地方执行匹配,但匹配不包含列表中给出的任何单词

我可以在没有正则表达式的情况下做到这一点,但我想知道Python中是否有一种内置的方法来做到这一点

例如:

names = ["David","John","Bob"]
x = "From John@email.com Sat Jan 5 09:14:16 2008"

y = re.findall([NOT in Names]+'\S+@\S+',x)
预期输出应为空列表。(因为里面有约翰) 如果上面的电子邮件是
will@email.com
然后我希望输出为

['will@email.com']

你可以这样做:

names = ["David","John","Bob"]
x = """From will@email.com Sat Jan 5 09:14:16 2008
       From mike@email.com Sat Jan 5 09:14:16 2008"""
y = [m[0] for m in re.findall('((\S+)@\S+)',x) if m[1] not in names]
-> ['will@email.com', 'mike@email.com']

你能显示表达式和预期的输出吗?谢谢你的评论,我现在就添加进去。