A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

贪婪模式和终结贪婪模式(?)是什么意思?

4 个回复

正序浏览
{:soso__3669389859068460655_3:}哇哇,还有着情况
回复 使用道具 举报
1、贪婪模式: 根据匹配字符串以及表达式尽可能多的进行匹配,成为贪婪匹配模式
   例如:/a\d+/ 即可以匹配首字母为a的之后的许多数字,这个不进行限制
     或者另外一种方法/a\d{2,}/也可以实现同样的方法

2、非贪婪模式: 根据匹配字符串以及表达式尽可能少的进行匹配。使用的方法就是在修饰匹配次数的特殊符号后再加上一个?号进行限制 如"*?","+?","{n,}?","{n,m}?"
如:/a\d+?/即匹配的字符串为a为首字母,后面只能有一个数字

从指定字符串中取得url信息

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> javascript 测试 </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
</HEAD>

<BODY>
  <script type="text/javascript">
var str = "<h2 style=\"font-size: 12px; margin-bottom:5px; padding-bottom:5px\"><a href  =   \"http://www.my400800.cn\" title=\"400电话\">400电话 </a></h2>";

var patt=/<a.*?[=][ ]{0,}[\"\']{1,1}(.*?)[\"\']{1,1}.*?>/g;
   //patt.compile(patt);
//var patt = new RegExp(/W3*hool/img,"g");
var result;
while ((result = patt.exec(str)) != null) {
    document.write(result[1]);
   document.write("<br />");
   document.write(patt.lastIndex);
   document.write("<br />");
}
</script>
</BODY>
</HTML>




输出结果:

http://www.my400800.cn
119

回复 使用道具 举报
在正则表达式中,当“?”紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。
非贪婪模式就是尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
例如,对于字符串 "happppy",'p+?' 将匹配一个"p",而 'p+' 将匹配所有 "p"。
回复 使用道具 举报
贪婪模式,就是在整个表达式匹配成功的前提下,尽可能多的匹配,也就是所谓的“贪婪”,通俗点讲,就是看到想要的,有多少就捡多少,除非再也没有想要的了。非贪婪模式,就是在整个表达式匹配成功的前提下,尽可能少的匹配,也就是所谓的“非贪婪”,通俗点讲,就是找到一个想要的捡起来就行了,至于还有没有没捡的就不管了。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马