<a ....href....>....</a> 就是要一个能验证此超链接的正则表达式“....”为任意字符。就是说以“<a”开头,中间含有“href”,后面还有“>”,最后以“</a>”结尾
解决方案 »
- 直接使用SqlDataSource这样的数据源控件好,还是直接在后台写代码,大家各抒己见啊
- treeview 展开和折叠节点时变化图标
- 高级编程上面看到的一段话,问个问题,就20分
- 关于asp.net中导出html表格到excel的问题(如何给excel添加边框线)?在线等
- 请问如何用flash9+fcs(fms)实现在线视频/音频录制?
- 这段限制图片大小的代码错在哪里呢(在线等待好心人)
- 关于ASP.NET 2.0的兼容性问题
- 请教一个ListBox控件的简单问题
- DataGrid超级连接列的问题
- 急急急!Mvc后台调转页面方式
- gridview寻找控件方法
- 1/2=0.50 C#中如何表示
^<a.*?href.*?>.*? </a>$加上开头和结尾
string str = "<a href=\"#\">链接</a>";
Regex re = new Regex("^<a.*?href.*?>.*?</a>$");
re.IsMatch(str);
正则表达式是贪婪的 会尽可能的匹配字符串 例如string str = " <a href=\"#\" >链接</a><br><a href=\"#\" >链接</a><br> ";
Regex re = new Regex("<a.*href.*>.*</a>"); //不加?
re.Matchs(str); // 这样只有一条匹配的记录 <a href=\"#\" >链接</a><br><a href=\"#\" >链接</a> 因为.匹配任何不是\n的字符 当然包括<Regex re = new Regex("<a.*?href.*?>.*?</a>"); //加?
re.Matchs(str); // 这样就有两个匹配 <a href=\"#\" >链接</a>和<a href=\"#\" >链接</a> 这样正则表达式就认为只要有匹配就返回 也就是懒惰的 尽可能匹配少的字符串 当然 把正则改称 "<a.*?href[^>]*>[^<]*</a>" 更好理解 其中[^>]*是说明不是>的字符有任意个 当遇到>字符自然就停了不走了 和.*?是一样的