正则表达式:不在列表中-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']
你能显示表达式和预期的输出吗?谢谢你的评论,我现在就添加进去。