牛骨文教育服务平台(让学习变的简单)
博文笔记

解析HTML正则表达式

创建时间:2008-04-04 投稿人: 浏览次数:1461

 

//把所有HTML标签找出来

哈哈,继 昨天的那个正则表达式 之后又写了一个更长的Regular Expression,全长527,是用于查找出所有的XHTML/HTML的标记外面的所有空格,并将之转换为 的。 希望这个能够解决dudu提的一个cnblogs的bug:)即使不能解决问题也算是对System.Text.RegularExpression.Regex的一个练笔了:)

(?:(?:/<(?:Style)(?:/s+(?:[/w-]+)(?:=(?:[^/s/>/<]*|/"[/s/S]*?/"|/"[/s/S]*?/"))?)*/s*(?:/)?/>)(?:[/s/S]*?)(?:/(?:Style)/>))|(?:(?:/<(?:script)(?:/s+(?:[/w-]+)(?:=(?:[^/s/>/<]*|/"[/s/S]*?/"|/"[/s/S]*?/"))?)*/s*(?:/)?/>)(?:[/s/S]*?)(?:/(?:script)/>))|(?:/)|(?:/,, ... ,标记或指令的标识符支持[a-zA-Z0-9_-:];
3。支持name=value和单独一个name的attribute,能够识别出""或""包括的属性值;
4。针对和

 

//非htmt标记中的空格转换成“ ”

正则表达式代码如下:
              

public static string ReplaceSpace(string content)
{
string findstr="(?(?:(?:[^< ])*(?:<(?:!--(?:(?:[^-])*(?:(?=-->)|-))*--|(?:[^>])+)>)?)*)[ ](?(?:(?:[^< ])*(?:<(?:!--(?:(?:[^-])*(?:(?=-->)|-))*--|(?:[^>])+)>)?)*)";
string replacestr="${fore} ${back}";
string targetstr=System.Text.RegularExpressions.Regex.Replace(content,findstr,replacestr,System.Text.RegularExpressions.RegexOptions.IgnoreCase);
return targetstr;
}


    这个正则表达式是一位朋友提供的,主要功能是将字符串中非htmt标记中的空格转换成“ ”, 目前我还没查出这个正则表达式中的问题,请熟悉正则表达式的朋友指点。

 

//获取URL

string regex="href=[///"///"](http://////|//.///|///)?//w+(//.//w+)*(/////w+(//.//w+)?)*(///|//?//w*=//w*(&//w*=//w*)*)?[///"///"]";


preg_match_all("/(.+?)/a.*?>/sim", $strSource, $strResult, PREG_PATTERN_ORDER);

//PHP正则相关文章

[专题] 正则表达式在PHP中的应用 [文章] 正则表达式中的特殊字符 [文章] 正则表达式使用详解 [文章] 在PHP中使用与Perl兼容的正则表达式 [文章] 揭开正则表达式语法的神秘面纱 [文章] MySql正则表达式的描述 [Classes] Search [下载] Mastering Regular Expressions (英文PDF) [常见问答] 如何使用PHP中的正则表达式 [常见问答] 正则表达式的基本语法 [常见问答] 怎么将单引号“"”前面加上一个反斜杠? [常见问答] 能否在SQL语句中使用正则表达式? [常见问答] 如何用正则表达式来表示中文?

 

//了解更多基于Perl样式的正则:http://www.pcre.org

 




声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。