Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 简单TextWrangler正则表达式替换_Regex_Grep_Textwrangler - Fatal编程技术网

Regex 简单TextWrangler正则表达式替换

Regex 简单TextWrangler正则表达式替换,regex,grep,textwrangler,Regex,Grep,Textwrangler,我正在使用textwrangler,而且我对regex是新手。我有很多电子邮件地址,但我只需要删除@mydomain.edu地址 Standard Hall,414,Ashley,Smith,"asmith@mydomain.edu, asmith@otherdomain.com" Standard Hall,414,Stacy,Smith,"ssmith@mydomain.edu, ssmith@otherdomain.com" 如您所见,每行都有一个使用@mydoamin.com的电子邮件

我正在使用textwrangler,而且我对regex是新手。我有很多电子邮件地址,但我只需要删除@mydomain.edu地址

Standard Hall,414,Ashley,Smith,"asmith@mydomain.edu, asmith@otherdomain.com"
Standard Hall,414,Stacy,Smith,"ssmith@mydomain.edu, ssmith@otherdomain.com"
如您所见,每行都有一个使用
@mydoamin.com
的电子邮件地址。我希望每次出现
@mydomain.com
时删除整个电子邮件地址,并保留备用电子邮件


有没有办法做到这一点?

如果您的地址在列表中,每行一个,您可以使用
grep

grep -v "@mydomain.edu" file.txt
编辑
awk

awk -F, '$5 ~ /@mydomain.edu/ { sub("[^\", ]*@mydomain.edu[, ]*","") }1' file.txt
结果:

Standard Hall,414,Ashley,Smith,"asmith@otherdomain.com"
Standard Hall,414,Stacy,Smith,"ssmith@otherdomain.com"

在TextWrangler的Find中,标记Grep复选框,并在Find textbox中插入此行:

([a-zA-Z0-9\.]*@mydomain.edu(, )?)|((, )?[a-zA-Z0-9\.]*@mydomain.edu)

然后点击全部替换。这将删除该域中的所有电子邮件,并保留正确的逗号数。

我更新了我的问题。我需要删除整个电子邮件地址,如果它与
@mydomain.edu
@NicHubbard:我想我是在你接受之前/之后编辑的。这个版本对你来说会更健壮。很高兴我能帮忙:-)