簡體   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