有一个过滤HTML的正则表达式是这样的"<(.+?)>" +是重复一次或多次,而问是重复0次事1次,我就不懂了,即然用了+,为何还要用?呢?还有那个括号到底是有什么用呢?我把括号取了,好像得到的结果也一样 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ?表示最小匹配,比如按照你上面的表达式对于下记内容:<abc>1234</abc><bcd>hahah</bcd>第一次匹配的结果就是:abc如果去掉?,匹配的结果就是:abc>1234</abc><bcd>hahah</bcd()表示匹配的范围。?的作用在于这个括号内。 因为 正则表达式是贪婪的 尽可能多的匹配字符而 . 代表着非换行符的所有字符 如 <td width="20px"><input type ="button" name="btnName" id="btnName" value=""/></td>这样的话 我们用<.+> 因为 > 也属于 . 的范畴 所以会将<td width="20px"><input type ="button" name="btnName" id="btnName" value=""/></td> 全部取到如果我们要取 <td width="20px"> 显然结果是不对的这样就要将正则的贪婪性德转变成懒惰的 关键字符就是 ?? 可用于表示重复的 + * ? 之后 使得正则表达式 变成懒惰的 只要有匹配就会返回结果 这样 <.+?> 就会将<td width="20px"> 取到 vs2005里装了ajax,在asp.net里想动态显示当前时间,为什么没反应,还要装什么东西吗? 如何使用js判断输入的数字合法 高手看看!在线等,在tab选项卡里能否添加图片 一条SQL语句 AJAX里面有个局部更新的东西,为什么微软自己的主页,没有使用自动更新 刚学ASP.NET,事件函数未定义的问题。高分求救!!! 用c#如何对一个文件夹进行加密和解密? 谁知道这是什么意思? <meta http-equiv="Refresh" content="5">只刷新服务器上的页面,客户机上的页面怎么刷新 C# 创建了一个iis站点。怎么配置iis版本问题,急急急急急 初学者 请教高手
<abc>1234</abc><bcd>hahah</bcd>
第一次匹配的结果就是:abc
如果去掉?,匹配的结果就是:abc>1234</abc><bcd>hahah</bcd()表示匹配的范围。?的作用在于这个括号内。
而 . 代表着非换行符的所有字符
如 <td width="20px"><input type ="button" name="btnName" id="btnName" value=""/></td>
这样的话 我们用<.+> 因为 > 也属于 . 的范畴
所以会将<td width="20px"><input type ="button" name="btnName" id="btnName" value=""/></td> 全部取到
如果我们要取 <td width="20px"> 显然结果是不对的
这样就要将正则的贪婪性德转变成懒惰的 关键字符就是 ?
? 可用于表示重复的 + * ? 之后 使得正则表达式 变成懒惰的 只要有匹配就会返回结果
这样 <.+?> 就会将<td width="20px"> 取到