[英]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}\\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.