[英]Editplus - Find email address, delete everything else
我有一个5MB的文本文件,需要在其中找到所有电子邮件地址并删除其他所有内容。
文本文件包含以下代码段中的项目:
<snip>
To: (Address)
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=49ee46a4d9da8492a8d0583f9b13225d5-Claire D
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=a1525d3se9057487d9cacdec1562b7281-Big Tang;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=92414e086e5540d890bg1372316f15222-Matt Perry
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=3c776ca5d813948559a705db141bf0100-Vijay Boy;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=49ee4s6a49da8492a8d0583f9b13225d5-Claire N
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=6e799gd02635149138e4c9d152ab0357e-Becky G
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=f65ed21e081g54effad7c9b4f0778f2b8-Ham Ly
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=d875920114ga748e99f045dbac3e34372-Brad King
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8d945fcc838gb49af822e17b6a3f641b7-Bharat Mass
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8514631915374ef88g3b382f4b7d2d4b2-Pratboss;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=a1525d3e9057487d9cacgdec1562b7281-Huy Tang;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8bc63496da41481fb02fbgcf359c029b1-Dolly Age
sales@trol.com
Joey.Boss@BCape.com
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=cddab36g026d64df993ca28a445354c0a-Dilshad A.
Joey.Boss@BCape.com
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=9843f7566d374cb7ac634637098gc3633-Orewell Dme;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=2198f33e85a24ebab276g2ea14g2415216-Mind God;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=7ea70e47dc7841a7ag007bfdba21feaf4-Prabhu Dist;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8d945fcc838b49afg822e17b6a3f641b7-Bharat Mass
</snip>
我能够研究如何使用正则表达式在Editplus中查找电子邮件地址。 我只是想不出find / replace命令来删除除电子邮件地址之外的所有内容,并确保电子邮件地址之间用一行分隔。
将以下内容放入Editplus find命令后,会给我发送电子邮件:
[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z0-9\.\-_]+
我希望能帮助您删除除电子邮件地址以外的所有内容。
([a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z0-9\.\-_]+)|.
替换为: $1
我会将您的表达式包装成( ..your expression.. )|.
然后只需替换所有内容,如果要替换的子字符串是与您的表达式匹配的电子邮件地址,则它将被捕获到$1
并替换为返回字符串。
现场演示
https://regex101.com/r/kY5dU8/1
示范文本
<snip>
To: (Address)
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=49ee46a4d9da8492a8d0583f9b13225d5-Claire D
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=a1525d3se9057487d9cacdec1562b7281-Big Tang;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=92414e086e5540d890bg1372316f15222-Matt Perry
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=3c776ca5d813948559a705db141bf0100-Vijay Boy;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=49ee4s6a49da8492a8d0583f9b13225d5-Claire N
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=6e799gd02635149138e4c9d152ab0357e-Becky G
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=f65ed21e081g54effad7c9b4f0778f2b8-Ham Ly
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=d875920114ga748e99f045dbac3e34372-Brad King
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8d945fcc838gb49af822e17b6a3f641b7-Bharat Mass
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8514631915374ef88g3b382f4b7d2d4b2-Pratboss;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=a1525d3e9057487d9cacgdec1562b7281-Huy Tang;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8bc63496da41481fb02fbgcf359c029b1-Dolly Age
sales@trol.com
Joey.Boss@BCape.com
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=cddab36g026d64df993ca28a445354c0a-Dilshad A.
Joey.Boss@BCape.com
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=9843f7566d374cb7ac634637098gc3633-Orewell Dme;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=2198f33e85a24ebab276g2ea14g2415216-Mind God;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=7ea70e47dc7841a7ag007bfdba21feaf4-Prabhu Dist;/o=ExchangeLabs/ou=Exchange Administrative Group (FYDIBOHF23SPDLTM)/cn=Recipients/cn=8d945fcc838b49afg822e17b6a3f641b7-Bharat Mass
</snip>
更换后
sales@trol.com
Joey.Boss@BCape.com
Joey.Boss@BCape.com
NODE EXPLANATION
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
[a-zA-Z0-9\.\-_]+ any character of: 'a' to 'z', 'A' to
'Z', '0' to '9', '\.', '\-', '_' (1 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
@ '@'
----------------------------------------------------------------------
[a-zA-Z0-9\.\-_]+ any character of: 'a' to 'z', 'A' to
'Z', '0' to '9', '\.', '\-', '_' (1 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
\. '.'
----------------------------------------------------------------------
[a-zA-Z0-9\.\-_]+ any character of: 'a' to 'z', 'A' to
'Z', '0' to '9', '\.', '\-', '_' (1 or
more times (matching the most amount
possible))
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
. any character except \n
----------------------------------------------------------------------
这确实并不复杂,尤其是当您分解任务时。
根据您的正则表达式,电子邮件地址必须带有@
符号。 因此,我使用此正则表达式使用了全局替换(启用了多行/全局模式):
^[^@]+$
结果是:
sales@trol.com
Joey.Boss@BCape.com
Joey.Boss@BCape.com
现在,您只需要用换行符替换多个空格,可以使用此正则表达式完成此操作:
\s+
对于您的数据,我建议您考虑使用一个或两个简单的正则表达式来保持可读性。 像这样的正则表达式将为您提供迄今为止最佳的性能(与我的相比, 其他答案需要10,000多个步骤才能完成,而我的正则表达式只需60 ...或1,000%的速度即可完成)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.