繁体   English   中英

使用此正则表达式模式匹配电子邮件以外的所有内容

[英]Match Everything Except Email With This Regex Pattern

因此,我有一行文本,其中包含大量不必要的信息(在Google工作表中)。 我想匹配除我正在使用以下正则表达式的EMAIL以外的所有内容:

[a-zA-Z0-9_.+-]+@(?:[a-zA-Z0-9-]+\.)+(?!png|jpg|gif)[a-zA-Z0-9-]+

如果我可以匹配电子邮件以外的所有内容,那么我可以查找/替换并仅将电子邮件保留在我想要的行中。 在这里遇到麻烦。 帮助将不胜感激!

虽然这并不完美,但这可能是您追求的目标:

对于在线演示,此方法有效: ^(?:.*?(\\w[^@\\s]*@[^@\\s]{2,}).*?|.+)$ 演示

但是,对于Google表格,您需要删除^$行的开始/结束标记,并且该标记应该可以完成大部分操作。 所以:

(?:.*?(\\w[^@\\s]*@[^@\\s]{2,}).*?|.+)

用$ 1替换此模式以仅保留每行的电子邮件地址

每行有效,该模式由非捕获组中的两个模式(?: 。第一个模式从行的开始.*?开始,直到所有group1包含电子邮件模式(\\w[^@\\s]*@[^@\\s]{2,})后跟其他任何.*直到该行的末尾,第二个模式将匹配所有其他行而不发送电子邮件,这是搜索模式。替换模式为group1 $1如果未找到电子邮件地址,则Group1将为空,因此每一行将为空或填充该电子邮件地址。

这可能不匹配所有电子邮件地址,但应该匹配大多数。 请参阅此问题 ,以获取有关正则表达式匹配电子邮件地址的详细信息。

除了电子邮件,您无法匹配所有内容。 但是您可以匹配所有内容电子邮件。

匹配所有非贪婪的内容,后跟捕获的电子邮件或字符串结尾。 全局更改为捕获组:

"BLAHBLAHemailBLAHBLAHemailBLAH".replace(/.*?(email|$)/g, "$1");
// => "emailemail"

(插入您自己的电子邮件正则表达式。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM