我有一个项目,我有一个巨大的电子邮件地址列表(即johnhahifas@example.com),我有一个最常见的5000个名字(即约翰,吉姆等)的列表
我正在尝试为每个电子邮件地址删除任何名字,如果它出现在电子邮件中,那么例如:
johnhahifas@example.com成为hahifas@example.com
benTTTben@something.com成为TTT@something.com
到目前为止,我提出了一个正则表达式解决方案和一个strfind解决方案,regexprep更快;我甚至对它进行了一些优化以删除@ example.com,以便操作可能更快;但它仍然需要永远运行。
您可以从此地址下载常用名字(CSV文件) http://www.quietaffiliate.com/Files/CSV_Database_of_First_Names.csv
我有正则表达式代码:
fileID = fopen('bademails');
emails = textscan(fileID,'%s');
str = emails{1,1}; %//Loaded in the emails
fileID = fopen('CSV_Database_of_First_Names.csv');
names = textscan(fileID,'%s');
Names = lower(names{1,1}); %//Loaded in the Names
K = regexprep(str,Names,''); %Regex on Names
非常感谢任何更快的解决方案,谢谢你提前!