//把所有HTML标签找出来
哈哈,继 昨天的那个正则表达式 之后又写了一个更长的Regular Expression,全长527,是用于查找出所有的XHTML/HTML的标记外面的所有空格,并将之转换为 的。 希望这个能够解决dudu提的一个cnblogs的bug:)即使不能解决问题也算是对System.Text.RegularExpression.Regex的一个练笔了:)
(?:(?:/<(?:Style)(?:/s+(?:[/w-]+)(?:=(?:[^/s/>/<]*|/"[/s/S]*?/"|/'[/s/S]*?/'))?)*/s*(?:/)?/>)(?:[/s/S]*?)(?:/
))|(?:(?:/<(?:script)(?:/s+(?:[/w-]+)(?:=(?:[^/s/>/<]*|/"[/s/S]*?/"|/'[/s/S]*?/'))?)*/s*(?:/)?/>)(?:[/s/S]*?)(?:/
))|(?:/
)|(?:/
,
,,标记或指令的标识符支持[a-zA-Z0-9_-:];
3。支持name=value和单独一个name的attribute,能够识别出""或''包括的属性值;
4。针对和标记包含的内容进行特殊处理,也就是所有的CSS和Script代码将原封不动的作为整体捕获。
//非htmt标记中的空格转换成“ ”
正则表达式代码如下:
{
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('/
(.+?)
/sim', $strSource, $strResult, PREG_PATTERN_ORDER);
//PHP正则相关文章
- [专题] 正则表达式在PHP中的应用
- [文章] 正则表达式中的特殊字符
- [文章] 正则表达式使用详解
- [文章] 在PHP中使用与Perl兼容的正则表达式
- [文章] 揭开正则表达式语法的神秘面纱
- [文章] MySql正则表达式的描述
- [Classes] Search
- [下载] Mastering Regular Expressions (英文PDF)
- [常见问答] 如何使用PHP中的正则表达式
- [常见问答] 正则表达式的基本语法
- [常见问答] 怎么将单引号“'”前面加上一个反斜杠?
- [常见问答] 能否在SQL语句中使用正则表达式?
- [常见问答] 如何用正则表达式来表示中文?
//了解更多基于Perl样式的正则:http://www.pcre.org