簡體   English   中英

檢測http標頭內的電子郵件

[英]detecting emails inside an http header

我正在csharp中建立一個代理,我的任務之一就是在http標頭內找到電子郵件,問題是我收到的數據里面收到的是%40而不是@,有人可以告訴我如何才能檢測到電子郵件郵件地址內的@被替換為%40? 這是我在給定字符串中獲取電子郵件地址的代碼(使用@而不是%40) 代碼

  string regexPattern = @"[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}";
  Regex regex = new Regex(regexPattern);
  MatchCollection matches = regex.Matches(this._context.Request.Headers[i]);
  foreach (Match match in regex.Matches(this._context.Request.Headers[i]))
  {// any email address should be printed 
         Console.WriteLine(match.Value);
  }

不確定我是否理解你的問題。 為什么不在你提供的正則表達式中用@ %40替換@ 所以:

string regexPattern = @"[A-Za-z0-9._%-]+%40[A-Za-z0-9.-]+\.[A-Za-z]{2,4}";

在通過正則表達式運行數據之前對URL進行解碼

regex.Matches(this._context.Server.UrlDecode(this._context.Request.Headers[i]))

要么:

regex.Matches(HttpUtility.UrlDecode(this._context.Request.Headers[i]))

使用OR(|)允許@或“%40”

[A-ZA-Z0-9 ._% - ] +。(@ |%40)[A-ZA-Z0-9 .-] + [A-ZA-Z] {2,4}

暫無
暫無

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

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