苏飞论坛

标题: 正则表达式收集与C#方式实现 [打印本页]

作者: 站长苏飞    时间: 2013-1-9 14:17
标题: 正则表达式收集与C#方式实现
1.取出所有的 A标签
[C#] 纯文本查看 复制代码
<a[^>]+>(.*?)</a>

2.取出A标签里面的属性
会取出所有的A标签里面的属性
[C#] 纯文本查看 复制代码
<a[^>]+>

3.检查是否存在content的Meta
[C#] 纯文本查看 复制代码
<meta([^<]*)content=([^<]*)>(.*?)

4.检查是否存在rel的a
[C#] 纯文本查看 复制代码
<a([^<]*)rel=([^<]*)>(.*?)

5.获取时间的正则表达式
[C#] 纯文本查看 复制代码
\s\d{1,4}-\d{1,2}-\d{1,2}

6.获取以,分开的数字的正则
[C#] 纯文本查看 复制代码
\d{1,100}([,]*\d{1,100})*

7.匹配所有的Script标签
[C#] 纯文本查看 复制代码
<script[^>]*?>.*?</script>

8.匹配所有的noScript标签
[C#] 纯文本查看 复制代码
<noscript[^>]*?>.*?</noscript>

9. 匹配所有的href标签
[C#] 纯文本查看 复制代码
href=["'\s]?(.*?)["'

10.取出Html的编码
[C#] 纯文本查看 复制代码
Match meta = Regex.Match(html, "<meta([^<]*)charset=([^<]*)[\"']", RegexOptions.IgnoreCase | RegexOptions.Multiline);
tring charter = (meta.Groups.Count > 2) ? meta.Groups[2].Value : string.Empty;

11.过滤所有Html代码的方法
[C#] 纯文本查看 复制代码
/// <summary>
        /// 过滤html标签
        /// </summary>
        /// <param name="strHtml">html的内容</param>
        /// <returns></returns>
        public static string StripHTML(string stringToStrip)
        {
            // paring using RegEx           //
            stringToStrip = Regex.Replace(stringToStrip, "</p(?:\\s*)>(?:\\s*)<p(?:\\s*)>", "\n\n", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = Regex.Replace(stringToStrip, "<br(?:\\s*)/>", "\n", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = Regex.Replace(stringToStrip, "\"", "''", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = StripHtmlXmlTags(stringToStrip);
            return stringToStrip;
        }

        private static string StripHtmlXmlTags(string content)
        {
            return Regex.Replace(content, "<[^>]+>", "", RegexOptions.IgnoreCase | RegexOptions.Compiled);
        }

使用访求
[C#] 纯文本查看 复制代码
string str = StripHTML(html);

12.验证IP地址的正则表达式

13.验证身份证15位和18位
[C#] 纯文本查看 复制代码
\d{17}[\d|X]|\d{15}

14.验证URL
[C#] 纯文本查看 复制代码
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

15.验证电子邮件
[C#] 纯文本查看 复制代码
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

16.验证固定电话
[C#] 纯文本查看 复制代码
(\(\d{3}\)|\d{3}-)?\d{8}

17.邮编
[C#] 纯文本查看 复制代码
\d{6}

作者: 菩提树    时间: 2013-4-28 00:01
正在学习正则,据说要好长时间会学会。
作者: 站长苏飞    时间: 2013-4-28 08:09
菩提树 发表于 2013-4-28 00:01
正在学习正则,据说要好长时间会学会。

用着学着就行了,不用一下子全学会
作者:  ̄itˊsme。    时间: 2013-6-6 16:28
我也分享一个吧,获取网页关键词和描述(自己写的,希望有高手过来帮忙优化下):
  1. <meta\s*(content=[""']?(.*?)[""']?\s*name=[""']?(.*?)[""']?)\s*[/]?>|(name=[""']?(.*?)[""']?\s*content=[""']?(.*?)[""']?)\s*[/]?>
复制代码

作者: Joy的池塘    时间: 2014-7-27 14:57
受教了,学习中……O(∩_∩)O哈哈~我第一次学的时候把它当成颜文字了
作者: liu67667    时间: 2014-10-27 07:23
感谢您的无私奉献,真是帮了我的大忙了
作者: abc147325    时间: 2021-1-19 21:53
牛逼,膜拜大佬门




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4