php正则匹配替换替换出现空白

服务热线:
400-021-8887
稳定快速,无需备案
六线访问无忧
国内/海外数据库主机
支持tomacat5/6/7,自主重启
云主机机房特色
微信平台特色
php利用正则过滤链接、标签,空格,换行符程序-中国互联
您现在的位置:&&
php利用正则过滤链接、标签,空格,换行符程序
大 中 小 
文章来源:
更新时间: 18:11:24
本文章详细的总结了php利用正则过滤链接、标签,空格,换行符程序,有需要学习的朋友可参考一下。
strip_tags函数
strip_tags --- 去除字串中的HTML和PHP标签
语法 : string strip_tags (string str [, string allowable_tags])
&代码如下 复制代码
$text = '&p&Test paragraph.&/p&&!-- Comment --& &a href="#fragment"&Other text&/a&';
echo strip_tags($text);
// Allow &p& and &a&
echo strip_tags($text, '&p&&a&');
正则过滤各种标签,空格,换行符
&代码如下 复制代码
$str=preg_replace("/s+/", " ", $str); //过滤多余回车
$str=preg_replace("/&[ ]+/si","&",$str); //过滤&__("&"号后面带空格)
$str=preg_replace("/&!C.*?C&/si","",$str); //注释
$str=preg_replace("/&(!.*?)&/si","",$str); //过滤DOCTYPE
$str=preg_replace("/&(/?html.*?)&/si","",$str); //过滤html标签
$str=preg_replace("/&(/?head.*?)&/si","",$str); //过滤head标签
$str=preg_replace("/&(/?meta.*?)&/si","",$str); //过滤meta标签
$str=preg_replace("/&(/?body.*?)&/si","",$str); //过滤body标签
$str=preg_replace("/&(/?link.*?)&/si","",$str); //过滤link标签
$str=preg_replace("/&(/?form.*?)&/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
$str=preg_replace("/&(applet.*?)&(.*?)&(/applet.*?)&/si","",$str); //过滤applet标签
$str=preg_replace("/&(/?applet.*?)&/si","",$str); //过滤applet标签
$str=preg_replace("/&(style.*?)&(.*?)&(/style.*?)&/si","",$str); //过滤style标签
$str=preg_replace("/&(/?style.*?)&/si","",$str); //过滤style标签
$str=preg_replace("/&(title.*?)&(.*?)&(/title.*?)&/si","",$str); //过滤title标签
$str=preg_replace("/&(/?title.*?)&/si","",$str); //过滤title标签
$str=preg_replace("/&(object.*?)&(.*?)&(/object.*?)&/si","",$str); //过滤object标签
$str=preg_replace("/&(/?objec.*?)&/si","",$str); //过滤object标签
$str=preg_replace("/&(noframes.*?)&(.*?)&(/noframes.*?)&/si","",$str); //过滤noframes标签
$str=preg_replace("/&(/?noframes.*?)&/si","",$str); //过滤noframes标签
$str=preg_replace("/&(i?frame.*?)&(.*?)&(/i?frame.*?)&/si","",$str); //过滤frame标签
$str=preg_replace("/&(/?i?frame.*?)&/si","",$str); //过滤frame标签
$str=preg_replace("/&(script.*?)&(.*?)&(/script.*?)&/si","",$str); //过滤script标签
$str=preg_replace("/&(/?script.*?)&/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)s*=/si","On\1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签
php 正则过滤html 的超链接
&代码如下 复制代码
echo preg_replace("/(?&=href=)([^&]*)(?=&)/i","#", "&a href='www.csdn.net'&你好,点这里看看&/a&&a href='www.111cn.net'&你好,点这里看看&/a&");
正则:/(?&=href=)([^&]*)(?=&)/
(?&=exp) 匹配exp后面的位置
(?=exp) 匹配exp前面的位置
此正则 匹配 在 href= 之后 “&” 之前 的 非 “&” 的所有字符
例子:&a href='www.111cn.net'&
找到这些字符(url)用 # 替换,就可以去掉html里的所有链接。
相关文章:
QQ:6584830
8:00-21:00javascript和php中的正则
var subStr=str.replace(reg/str,'');
不改变原来的字符串返回替换后的字符窜; 如果不用正则,只能替换第一个匹配到的;
var subStr=str.match(reg);
返回匹配到的字符串;如果不指定全局匹配,只match第一个出现的字符,一般和正则配合使用;
var bool=reg.test(str);===>检测str里面有没有出现符合正则的部分,
var int=str.search(reg/str);返回要查找的reg/str第一次出现的位置,没找到返回-1;
在大字符串中找小字符串;可以和则配合使用,但全局匹配不起作用,因为只返回第一次匹配到的字符的位置;
var subStr=str.charAt(int)
返回指定位置的一个字符;
var subStr=str.sbustring(start,[end]);
不包括end位;
var subStr=str.substr(start,length);
var arr=str.split('分隔符');
默认是逗号;
兼容正则的string 函数;
****兼容正则的str函数和正则配合使用最主要的是可以用正则的模糊匹配和全局匹配,如果只是查找单个确定的字符串,就没必要用到正则;
str.split(preg)
====>以正则表达式匹配的内容将str分隔成数组;注意,如果有子表达式,除了以整体正则分隔,还会以子表达式分隔,用split函数时正则最好不要带字表达式;
var str='aabbccddaabbccdd';
var preg=/aa/g;
var res=str.split(preg);
// alert(res.constructor);
//function A
2str.match(preg)
==>返回一个数组;
var str='aabbccddaabbccdd';
var preg=/aa/g;
var a=str.match(preg);
//alert(a.constructor);
//function A
//alert(a.length);
//alert(a);
3 str.search
var str='aabbccddaabbccdd';
var preg=/aa/g;
var res=str.search(preg);
//alert(res.constructor);
//function N
全局匹配不起作用;
// alert(res);
返回第一次匹配到的位置没找到返回-1;
var str='aabbccddaabbccdd';
var preg=/aa/g;
var res=str.replace( preg,'*' );
alert(res);
//*bbccdd*
//查找aabbcc并把其中的bb替换成*
var res1=str.replace( preg,'$1*$2' );
alert(res1);
//aa*ccddaa*
var bool=preg.test(str)
preg.exec(str);
//js最强大的正则函数;
var str='aabbccddaabbccdd';
var preg=/aa(bb)/g;
var res=preg.exec(str);
// alert(res);
//返回的是一个数组,这个数组的 res[0]是正则匹配的整体,其后依次是匹配的子表达式; 当对字符串进行模糊匹配时,通过返回的结果能确定到底匹配到了什么;
//在js中一切都是对象,返回的数组包含两个属性,index和
// alert(res.index); //0
返回偏移量;
// alert(res.input);
//aabbccddaabbccdd
//var res=preg.exec(str);
//var res1=preg.exec(str);
//alert(res.index);
//这个和php里获取资源的函数mysql_fetch_assoc(res)类似;可以用一个while把全局匹配到的所有信息打印出来;
//alert(res1.index); //8
最后来个重口味的;把所有信息取出来;
var str='aabbccddaabbccdd';
var preg=/aa(bb)/g;
while(res=preg.exec(str)){
document.write(key+'='+res[key]+'');
input=aabbccddaabbccdd
input=aabbccddaabbccdd
正则区分大小写;
忽略大小写;
js正则对象RegExp,包含一些属性,如匹配模式i m g s等;
var reg=/ ^\s+|\s+$ /
reg.source
^\s+|\s+$
reg.global
==>返回true
==>(因为创建的reg对象指定了全局匹配)
/^\s+|\s+$/g
===>去行首和行尾的空格;
==>匹配空行;
: /a|b|c/=/[abc]/;
方括号 [ ] 的第一种用法的第一种用法==>或者
第二种用法
==>代表方位内的一个;
第三种用法
^放在方括号 [ ^ ]内表示取反;
[\u4e00-\u9fa5] ==>匹配中文;
要匹配单个中文可以查中文的unicode十六进制编码;
\b 单词边界
字符窜首尾,或者空格,或者逗号都匹配;
\B单词的非边界
除了XXX之外;
代表任意字符
+代表{1,N}个和前面一样的字符
数字 digital
[0-9a-zA-Z_]
[^0-9a-zA-Z_]
注意/[a-zA-Z_]/==/[a-z]/
除了空格外的字符;
匹配所有非空字符
{0,1}==>出现0次或者一次
(把大字符串的每一行都当做一个开始和结束,如果不用多行模式,正个大字符串无论有多少行都只有一个开头和一个结尾);
把每行的结尾的字符换成#;
单行模式(在php中如果把正则匹配模式设为单行模式即s模式,那么(点).元字符就会代表任意字符,包括换行符在内;)--用途,如果要匹配的字符中间出现换行符,点元字符就不能被匹配,导致匹配不到结果.
在js中不支持单行模式可以用一对反义字符
代替单行模式;
预查(断言)==>预查字符不放入结果,
向后预查(断言)(预先判断前面的值是否为制定值)语法==>(?=xxx);
或者(预先判断前面的值是否不为制定值) 语法==> (?!xxx);
1//查找 一 ing结尾的词的词根
/\b\w+?(?=ing\b)/
//单词本身含有ing但返回的结果是去掉了ing后的部分;
var preg=/\bwin(?=xp\b)xp\b/; //要包含预差部分,还要在预查后面加上预查内容;
2//查找出以win开头且不是win95单词;
var str='winxp winstart win95 win2003';
var preg=/\bwin(?!95)\w+?\b/
var str1=str.match(preg);
alert(str1);
//winxp winstart win2003
3//找出以un开头的词的词根:
var str='unhappy unknown happy undo';
var preg=/\b(?=un)\w+?\b/
var str1=str.match(preg);
alert(str1);
// happy known do
向前预查(断言):(js暂时不支持)
php(支持);
反向引用子表达式:
(?:pattern) 匹配pattern
但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用;
在正则表达式内部用\1,\2\3……..\n引用;
在正则表达式外部用(用正则函数和兼容正则的函数时)用$1,$2,…..$n引用;
完美版getByClass
function getByClass(oParent,ClassName){
var aEle=oParent.getElementsByTgeName('*');
var aResult=[];
var reg=/\b+className\b+/
for(i; i<aEle.i&#43;&#43;){
if( reg.test(aEle[i].className) ){
aResult.push(aEle[i]);
php中的正则;
php的正则语法和js几乎一致;只是使用的正则函数不同
//php正则函数;
对数组进行正则替换;
1:array preg_grep ( string $pattern , array $input [, int $flags = 0 ] );
第三个可选参数$flag只有一个&#20540;PREG_GREP_INVERT,如果指定,则返回没有被匹配到的数组元素(即取反);
2 int preg_match ( string $pattern , string $subject [, array &$matches ] )
第三个可选参数保存了匹配到的字符串(一维数组),后面两个参数最好不要用,如果用了第4个可选参数,会导致数组位数的增加;
返回&#20540;,匹配成功返回1,没匹配到返回0;
3int preg_match_all ( string $pattern , string $subject [, array &$matches ]);
参数和用法和preg_match()一样;
返回&#20540;,匹配到了返回匹配到的次数;没匹配到返回0;
4正则替换;
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 )
此函数默认(-1)是全局替换,如果不希望全部替换,第四个可选参数可以指定替换的次数;
array preg_split ( string $pattern , string $subject [, int $limit = -1 ]);
此函数返回一个数组,第四个可选参数指定希望返回的数组的最大的长度(通过这个参数可以对字符串进行不王全切分);
6特殊字符转义;
string preg_quote ( string $str [, string $delimiter = NULL ] );
此函数会对传入的$strcan参数里面的在真中又特殊含义的特殊字符进行加反斜杠转义,第二个可选参数可以额外指定一个被转义的任意字符;
此函数和前面几个正则函数配合使用才能发挥更大的威力;
$keywords = '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo $ // returns \$40 for a g3\/400
$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
"" . $word . "",
$textbody);
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。PHP中用正则表达式清除字符串的空白_PHP教程_编程技术
您的位置: &
& PHP中用正则表达式清除字符串的空白
如果您想要去掉字符串开始和结束的空白可以使用PHP内部函数trim() 。但是, 我们经常想完全清除空白。需要把开始和结束的空白清除掉,将多个空白变为一个空白,使用一个规则来处理同样的类型的其它空白。 完成这些可以使用PHP的正则表达式来完成 下例可以去除额外Whitespace 复制代码 代码如下:
&?php $str = " This line contains\tliberal \r\n use of whitespace.\n\n"; // First remove the leading/trailing whitespace //去掉开始和结束的空白 $str = trim($str); // Now remove any doubled-up whitespace //去掉跟随别的挤在一块的空白 $str = preg_replace('/\s(?=\s)/', '', $str); // Finally, replace any non-space whitespace, with a space //最后,去掉非space 的空白,用一个空格代替 $str = preg_replace('/[\n\r\t]/', ' ', $str); // Echo out: 'This line contains liberal use of whitespace.' echo "&pre&{$str}&/pre&"; ?&
上例一步一步的去掉所有的空白。首先我们使用trim()函数来去掉开始和结束的空白。然后,我们使用preg_replace() 去除重复的。\s代表任何whitespace 。(?=) 表示向前查找 。它味着只匹配后面有和它本身相同字符的字符。所以这个正则表达式的意思是: "被whitespace 字符跟随的任何whitespace 字符。" 我们用空白来替换掉,这样也就去除了,留下的将是唯一的whitespace 字符。 最后, 我们使用另一个正则表达式[\n\r\t]来查找任何残余的换行符(\n), 回车(\r), 或制表符(\t) 。我们用一个空格来替换这些。
( 13:21:51)
( 13:21:51)
( 01:29:00)
( 01:29:00)
( 01:29:00)
( 01:29:00)
( 01:29:00)
( 13:47:12)
相关排行总榜php正则过滤html标签、空格、换行符的代码
php正则过滤HTML的代码,可以用来过滤空格、换行符等html代码,可以根据自己的需求继续扩展。
$str=preg_replace(&#8220;/\s+/&#8221;, &#8221; &#8220;, $str); //过滤多余回车
$str=preg_replace(&#8220;/&[ ]+/si&#8221;,&#8221;&&#8220;,$str); //过滤&__(&#8220;&&#8220;号后面带空格)
$str=preg_replace(&#8220;/&\!&#8211;.*?&#8211;&/si&#8221;,&#8221;&#8221;,$str); //注释
$str=preg_replace(&#8220;/&(\!.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤DOCTYPE
$str=preg_replace(&#8220;/&(\/?html.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤html标签
$str=preg_replace(&#8220;/&(\/?head.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤head标签
$str=preg_replace(&#8220;/&(\/?meta.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤meta标签
$str=preg_replace(&#8220;/&(\/?body.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤body标签
$str=preg_replace(&#8220;/&(\/?link.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤link标签
$str=preg_replace(&#8220;/&(\/?form.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤form标签
$str=preg_replace(&#8220;/cookie/si&#8221;,&#8221;COOKIE&#8221;,$str); //过滤COOKIE标签
$str=preg_replace(&#8220;/&(applet.*?)&(.*?)&(\/applet.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤applet标签
$str=preg_replace(&#8220;/&(\/?applet.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤applet标签
$str=preg_replace(&#8220;/&(style.*?)&(.*?)&(\/style.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤style标签
$str=preg_replace(&#8220;/&(\/?style.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤style标签
$str=preg_replace(&#8220;/&(title.*?)&(.*?)&(\/title.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤title标签
$str=preg_replace(&#8220;/&(\/?title.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤title标签
$str=preg_replace(&#8220;/&(object.*?)&(.*?)&(\/object.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤object标签
$str=preg_replace(&#8220;/&(\/?objec.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤object标签
$str=preg_replace(&#8220;/&(noframes.*?)&(.*?)&(\/noframes.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤noframes标签
$str=preg_replace(&#8220;/&(\/?noframes.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤noframes标签
$str=preg_replace(&#8220;/&(i?frame.*?)&(.*?)&(\/i?frame.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤frame标签
$str=preg_replace(&#8220;/&(\/?i?frame.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤frame标签
$str=preg_replace(&#8220;/&(script.*?)&(.*?)&(\/script.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤script标签
$str=preg_replace(&#8220;/&(\/?script.*?)&/si&#8221;,&#8221;&#8221;,$str); //过滤script标签
$str=preg_replace(&#8220;/javascript/si&#8221;,&#8221;Javascript&#8221;,$str); //过滤script标签
$str=preg_replace(&#8220;/vbscript/si&#8221;,&#8221;Vbscript&#8221;,$str); //过滤script标签
$str=preg_replace(&#8220;/on([a-z]+)\s*=/si&#8221;,&#8221;On\\1=&#8221;,$str); //过滤script标签
$str=preg_replace(&#8220;/&#/si&#8221;,&#8221;&#&#8221;,$str); //过滤script标签,如javAsCript:alert(
本文是由于LsevenTT站群哥博客原创发布
关于 LsevenTT站群哥
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
热门标签云
想找点什么呢?
随机推荐文章
你是不是也记得多久没有说爱我
莫问前程凶吉,但求落幕无悔
你是不是也记得多久没有说爱我
是不是也记得多久没有说爱我记得多久没有说爱我
记得多久没有说爱我
太爱一个人,你会太在乎他/她跟谁在一起,心里是否有你;
太爱一个人,你会刚说再见却又心生思念;
太爱一个人,你会因为他/她的温柔而满怀甜蜜, 更会因为他/她的冷漠而郁郁寡欢;
太爱一个人,会无原则地忍受他/她,慢慢地他/她习惯于这种纵容,无视你为他/她的付出,甚至会觉得你很烦。
冷冷的夜里就很容易掏心掏肺,

我要回帖

更多关于 php 正则替换 的文章

 

随机推荐