正则表达式如何剔除两个字符之间的内容
内容如下:顺风顺水分公司孤独感4545dgdfgdgdgwrwerewre你好<scriptlanguage=javascript>中间是若干JS代码</script>s...
内容如下:
顺风顺水分公司孤独感4545dgdfgdgdg wrwerewre你好 <script language=javascript>中间是若干JS代码</script>
ssfsfs额恶搞个大范甘迪123124大范甘迪
现在我需要从上面内容中剔除掉<script language=javascript>和</script>之间的内容,只获得如下内容
顺风顺水分公司孤独感4545dgdfgdgdg wrwerewre你好
ssfsfs额恶搞个大范甘迪123124大范甘迪
那么用php的preg_match的正则应该怎么写,回答正确,加分
感谢1楼的回答,但是strip_tags根本去不了<script>和</script>之间的内容
问题已经解决了,可以用preg_replace函数替换掉他们之间的内容,一直想着match忘了这个,呵呵
下面这个正则就可以
$result=preg_replace('/<script.*?>.*?<\/script>/is',"",$str); 展开
顺风顺水分公司孤独感4545dgdfgdgdg wrwerewre你好 <script language=javascript>中间是若干JS代码</script>
ssfsfs额恶搞个大范甘迪123124大范甘迪
现在我需要从上面内容中剔除掉<script language=javascript>和</script>之间的内容,只获得如下内容
顺风顺水分公司孤独感4545dgdfgdgdg wrwerewre你好
ssfsfs额恶搞个大范甘迪123124大范甘迪
那么用php的preg_match的正则应该怎么写,回答正确,加分
感谢1楼的回答,但是strip_tags根本去不了<script>和</script>之间的内容
问题已经解决了,可以用preg_replace函数替换掉他们之间的内容,一直想着match忘了这个,呵呵
下面这个正则就可以
$result=preg_replace('/<script.*?>.*?<\/script>/is',"",$str); 展开
3个回答
推荐于2016-06-13 · 知道合伙人教育行家
关注
展开全部
正则表达式剔除两个字符之间的内容:
$id="index_nav"; $preg='/id="(.*)"/isU'; preg_match_all($preg,$id, $arr); print_r($arr);
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
$id="index_nav"; $preg='/id="(.*)"/isU'; preg_match_all($preg,$id, $arr); print_r($arr);
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
展开全部
至今我还没有见过能用一个正则完美过滤script标签的.
比如正则
<script[^>]*>.*?<\/script>
可以被
<scr<script>alert(1);</script>ipt>alert(1);</script>
绕过
又比如:
<script[^>]*>[^<>]*<\/script>
可以被
<script>var s="<>"; alert(1);</script>绕过
还是那句老话:正则虽易, 用好却难。
要实现你的功能,最简单的就是php自带函数strip_tags,第二个参数填上你所有允许的标签就OK了。
如果完全想过滤用户的html输入就更简单了, 直接用htmlspecialchars就OK了
-----------------------------------------
再多说几句,防止XSS,并不是禁止掉script标签就安全了的,还有很多很多其他的地方可以做手脚
比如<img src="x" onerror="alert(1);" />
比如style的expression.
-------------------------------------------
to 蛋壳儿漂:
果然有撞枪口的,你试试你的正则能不能过滤掉这个:
<scr<script>alert(1);</script>ipt>alert(1);</script>
to LZ:
为什么需要过滤掉里面的内容?只要让他的内容没有危害就好了啊!
-------------------------------------------
亲爱的楼主,我说过了,正则不是那么好用的,你试试你的正则,会被很轻松的绕过的:
<?php
$str = '<scr<script>alert(1);</script>ipt>alert(1);</script>';
$result=preg_replace('/<script.*?>.*?<\/script>/is',"",$str);
echo $result;
比如正则
<script[^>]*>.*?<\/script>
可以被
<scr<script>alert(1);</script>ipt>alert(1);</script>
绕过
又比如:
<script[^>]*>[^<>]*<\/script>
可以被
<script>var s="<>"; alert(1);</script>绕过
还是那句老话:正则虽易, 用好却难。
要实现你的功能,最简单的就是php自带函数strip_tags,第二个参数填上你所有允许的标签就OK了。
如果完全想过滤用户的html输入就更简单了, 直接用htmlspecialchars就OK了
-----------------------------------------
再多说几句,防止XSS,并不是禁止掉script标签就安全了的,还有很多很多其他的地方可以做手脚
比如<img src="x" onerror="alert(1);" />
比如style的expression.
-------------------------------------------
to 蛋壳儿漂:
果然有撞枪口的,你试试你的正则能不能过滤掉这个:
<scr<script>alert(1);</script>ipt>alert(1);</script>
to LZ:
为什么需要过滤掉里面的内容?只要让他的内容没有危害就好了啊!
-------------------------------------------
亲爱的楼主,我说过了,正则不是那么好用的,你试试你的正则,会被很轻松的绕过的:
<?php
$str = '<scr<script>alert(1);</script>ipt>alert(1);</script>';
$result=preg_replace('/<script.*?>.*?<\/script>/is',"",$str);
echo $result;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$str = "顺风顺水分公司孤独感4545dgdfgdgdg wrwerewre你好 <script language=javascript>中间是若干JS代码</script>
ssfsfs额恶搞个大范甘迪123124大范甘迪
";
$strnew = preg_replace("#<script[^>]*>[\s\S]*?</script>#","",$str);
echo $str;
echo $strnew;
使用的是preg_replace正则替换函数。
ssfsfs额恶搞个大范甘迪123124大范甘迪
";
$strnew = preg_replace("#<script[^>]*>[\s\S]*?</script>#","",$str);
echo $str;
echo $strnew;
使用的是preg_replace正则替换函数。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询