PHP正则表达式问题:/<[^>].*?>.*?<\/>/si 这是一句过滤所有脚本的表达式。能详细解释下不?

我想问一下,表达式中同时出现的 *?是什么意思?还有句末的 si 是忽略空格和大小写的意思么?谢谢了!

<除了“>”的任意n个字符字符>任意字符</>,不分大小写
大多数正则表达式的解析都一样的,
i表示不区分大小写,
s是修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。
[^>]表示匹配非>字符,“.”表示匹配所有的字符。
<\/>匹配</>,\是转义符,\/即表示/追问

我是说元字符(.)后面直接跟一个"*"就代表任意n个字符了啊,为什么还要加一个"?"呢?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-27
加上"?"表示非贪婪匹配...

参数"i"表示忽略大小写

参数"s"表示 正则中的"."可以匹配换行本回答被提问者采纳

下面的正则表达式的 "\/<[\\\/\\!]*?[^<>]*?>\/is"; 是什么意思?求详解!
表达式"\/<[\\\/\\!]*?[^<>]*?>\/is":\/< #表示匹配\/和<字符 [\\\/\\!] *? #[\\\/\\!]表示匹配\/和!其中任意一个字符,前面的\\是用来转义的,*是对前面[]中内容可以重复0次或多次,*后面加?表示进 行懒惰匹配 [^<>]*? #[^<>]表示匹配除了<和>字符以外的字符,后面的*?同上 >...

该正则表达式,用于过滤掉什么内容呢?:"\\\\([^()]*\\\\)"; (PHP)
匹配空白行的正则表达式:\\n\\s*\\r 匹配HTML标记的正则表达式:<(\\S*?)[^>]*>.*?<\/\\1>|<.*? \/> 匹配首尾空白字符的正则表达式:^\\s*|\\s 匹配Email地址的正则表达式:\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)匹配网址URL的正则表达式:[a-zA-z]+:\/\/[^\\s]匹...

正则表达式(?<=class="answer_con">)[\\s\\S]*?(?=<\/div>)的问题
第一次是匹配div内容,保存到变量$res中,第二次是将$res中的span替换为空。如果楼主用的是javascript,正则表达式基本一样,只是匹配的时候使用exec或者match函数。很久没有弄正则了,为了回答你这个问题,我看了20多分钟的正则。。。呃呃。。。希望对楼主有帮助~Best Wishes~~~...

php 正则表达式匹配到href的链接怎么写?急!!!
patten="\/<a href=[\\'\\"]?([^\\'\\" ]+).*?>\/";

PHP preg_match_all函数中的正则表达式问题
一个DIV中须要取出两个值,也就是两个匹配的表达式,第一个表达式用于匹配ID值(biuuu),第二个表达式用于匹配ID的内容(jb51.net),正则表达式常用的表达式运用小括号,那么前面的元素将会变成如下形式:<div id="(biuuu)">(jb51.net)<\/div> <div id="(表达式1)">(表达式2)<\/div> 运用如...

PHP正则表达式遇到难题了,求解释```
preg正则表达式有一个模式分隔符,可以为任意字符。文中的表达式选择了\/,所以在正则中遇到\/就要转义成\\\/(也可以写成 Q^<[\/]?[a-zA-Z0-9 ="\\';:]*>$Q ,pcre完全能够理解)这一串正则匹配一个以<开头,以>结尾,中间包含任意多个字母、数字、空格、等号、单双引号、分号和冒号的字符串。原文...

这一段php中正则表达式的详细含义……
第六条是 UNION联合查询 第七条是 数据库更新语句 第八条是 数据表插入 第九条是 查询或删除数据 第十条是 创建、修改、删除等数据库操作 而这条语句的作用就是使用正则从字符串中查找是否存在数据库操作相关的敏感字符串,从而对该字符串进行一定的处理,保障服务器安全。(以上)...

PHP 正则表达式 匹配离的最近的所有组的值
a = preg_match('\/(<div class=\\"watchVariantBox\\">.*?<\\\/div>)\/', $output, $arr);

用php过滤html部分标签
过滤HTML属性 1,过滤所有html标签的正则表达式:复制代码 代码如下:<\/?[^>]+> \/\/过滤所有html标签的属性的正则表达式:html = preg_replace("\/<([a-zA-Z]+)[^>]*>\/","<\\\\1>",$html);3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):复制代码 代码如下:<\/?

PHP函数preg_match_all问题
变成在后面跟上“?”才重复;[^>]+表示匹配一个以上的字符, 而且这个字符不是大于号;$matches[0]表示目标字符串中匹配该模式 (整个正则表达式的) 的部分, 例如<div>ddd<\/div>;$matches[1]表示目标字符串中匹配第一个括号的子模式 (第一个括号里面, 本例是 (.*) ) 的部分, 例如 ddd ...

相似回答