matlab最有效的部分字符串减法/正则表达式

时间:2015-03-24 14:12:21

标签: regex matlab

我有一个项目,我有一个巨大的电子邮件地址列表(即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

非常感谢任何更快的解决方案,谢谢你提前!

0 个答案:

没有答案