-1

我不擅长正则表达式,这就是为什么发布这个。我有代码来获取所有 url 以及来自 html 的所有电子邮件。但我需要以下内容。我可以使用以下获取所有网址:

Regex regx = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?",
                        RegexOptions.IgnoreCase);
                        MatchCollection ms = regx.Matches(body);

                        foreach (Match m in ms)
                        {
                            string tmpLink = m.Value.ToString();

                        }

现在我想进一步匹配它是否包含 www 之后的数字。所以我会将它标记为垃圾邮件。或者可以有一个完整的代码而不是这个内部循环。电子邮件也是如此,获取那些在@之后有数字的电子邮件。

4

1 回答 1

1

您的正则表达式的工作方式如下: http://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\ (\)_\-\=\+\\\/\?\.\:\;\'\,]*)?

http:// - http://

([\\w+?\\.\\w+])+ - 以下任何一项出现一次或多次 - 单词字符, +, ?, .(不需要的转义.)

([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?- 带有单词字符或列出的字符出现零次或多次的可选部分(充满了不需要的转义)

Forhttp://后跟www.使用http://www\.http://www\.\d+[\w.]*匹配http://www.,后跟一个或多个数字,后跟零个或多个单词字符或点。

对于后面有数字的电子邮件@,请使用[A-Za-z]\w+\@\d+[\w.]*.

注意:我不确定您的要求。

于 2013-02-12T06:27:37.723 回答