我是Python正则表达式的新手:
我有一个要搜索的列表,如果其中包含员工姓名。
员工名称可以是:
ListSentence = ["Steve®", "steveHotel", "Rob spring", "Car Daniel", "CarDaniel","Done daniel"]
ListEmployee = ["Steve", "Rob", "daniel"]
ListSentence
的输出为:["Steve®", "Rob spring", "Car Daniel", "Done daniel"]
最佳答案
我认为您无需检查所有这些情况。我认为您需要做的只是检查单词中断。
您可以使用|
加入ListEmployee列表,以创建一个或正则表达式(也可以将其小写以区分大小写),并用\b
包围以进行分词,这应该可以工作:
regex = '|'.join(ListEmployee).lower()
import re
[l for l in ListSentence if re.search(r'\b(%s)\b' % regex, l.lower())]
应该输出:
['Steve\xb6\xa9', 'Rob spring', 'Car Daniel', 'Done daniel']