簡體   English   中英

文字替換挑戰(正則表達式)

[英]Text replace challenge (regex)

我無法解決問題。 也許不可能實現我想要的。

目標:僅使用替換功能刪除除電子郵件地址外的所有文本。

我的電子郵件中包含以下文本: Start text some other text 2828 text my.address@mail.com some additional text. 選擇電子郵件的正則表達式: [a-zA-Z0-9\\-\\._]+@[\\w\\d\\-\\._]+\\.\\w{2,12}

正則表達式非常適合查找電子郵件地址,但不能刪除電子郵件中的所有字母。

下面的打印屏幕顯示了在文本編輯器中應用替換功能時得到的結果: 在此處輸入圖片說明 作為結果,我使用了regexp .*([a-zA-Z0-9\\-\\._]+@[\\w\\d\\-\\._]+\\.\\w{2,12}).*和將其替換為$1 遺憾的是,此工作流程給我發送了破碎的電子郵件。

我以電子郵件為例,對於其他任何數據類型(如URL,IP,電話,名稱,城市,郵政編碼等),結果都是相同的。

誰能公開解決這個問題的方法? 非常感謝。

PS我對使用math()函數不感興趣,因為大多數文本編輯器都未提供此函數。

我認為您應該使第一部分不要貪婪 .*? 否則.*將與@匹配,然后放棄1個匹配項以滿足字符類[a-zA-Z0-9\\-\\._]+

如果不是貪婪,它將捕獲my.address@mail.com而不是s@mail.com

.*?([a-zA-Z0-9\\-\\._]+@[\\w\\d\\-\\._]+\\.\\w{2,12}).*

我會這樣做:

查找: (.*?)[a-zA-Z0-9\\-\\._]+@[\\w\\d\\-\\._]+\\.\\w{2,12}\\s?(.*?)

替換: $1$2


輸入: Start text some other text 2828 text my.address@mail.com some additional text

輸出: Start text some other text 2828 text some additional text

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM