Я пишу себе простое приложение для очистки экрана, чтобы поиграть с библиотекой HTMLAgilityPack, и после того, как он начал работать с несколькими различными типами HtmlNodes, я подумал, что мне понравится и также введите в Regex для адресов электронной почты. Единственная проблема заключается в том, что приложение никогда не находит совпадений, или, может быть, оно не возвращается должным образом. Это происходит даже на сайтах, которые, как известно, содержат адреса электронной почты. Может ли кто-нибудь определить, что я делаю неправильно здесь?C# RegEx на StreamReader не вернет совпадения
string url = String.Format("http://{0}", mainForm.Target);
string reg = "\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+.[A-Z]{2,4}\b";
try
{
WebClient wClient = new WebClient();
Stream data = wClient.OpenRead(url);
StreamReader read = new StreamReader(data);
MatchCollection matches = Regex.Matches(read.ReadToEnd(), reg, RegexOptions.IgnoreCase|RegexOptions.Multiline);
foreach (Match match in matches)
{
textBox1.AppendText(match.ToString() + Environment.NewLine);
}
+1 - Я думаю, что официальным термином является «стенографический строковый литерал». –
Sweet, теперь он отображает совпадения :) Как бы я хотел убедиться, что он не отображает дубликаты? – Stev0
@Stev, вы имеете в виду, если один и тот же адрес электронной почты появляется более одного раза в тексте? Вы можете добавить каждое соответствие к ['HashSet'] (http://msdn.microsoft.com/en-us/library/bb359438.aspx), а затем добавить его, если' Add' возвращает true (он еще не был там). –