请问正则里面的 .*? 到底是什么意思? 经常碰到别人的代码当中有这个出现.*是指任何字符0个或多个,.?是指任何字符0个或1个..*? 到底是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .表示除换行和回车之外的任意字符。*和?是量词。*表示0个以上,?表示0个或一个,是用来形容.的。*?是表示0到多个,和*的区别是匹配方式不一样*是贪婪量词,就是尽可能的一次匹配更多的字符,后面紧跟着一个?就变成隋性量词了,就是一次尽可能匹配更少的符。比如var str = "abc9bd9eg9et9ee";reg1 = /9\w*9/;reg2 = /9\w*?9/;alert(str.replace(reg1,""));alert(str.replace(reg2,""));发现reg1匹配了9bd9eg9et9,而reg2只匹配了9bd9 谢谢Inpool,真的是好人啊!! <img>控件添加onclick()和mouseover()事件 大家看哈我做用js做的程序可以值几个钱 高分送 asp 编辑器插入图片提示脚本错误对象不支持此对象或方法: 推荐!!!【ezj】一款国产JavaScript 框架,使用体验 用什么事件可以监视播放器状态 如何实现多个超链接中,点击任何一个就能让隐藏字段得到所点击的超链接的文本内容 关于用JS代码编写触发键盘按钮的问题 帮忙修改一下我的js.很简单 Javascript中如果使用一个变量作为对象方法的参数,应该如何表示? 郁闷的小问题! js中的递归问题 下面这段JS看不懂,谁能帮忙看下
*和?是量词。*表示0个以上,?表示0个或一个,是用来形容.的。*?是表示0到多个,和*的区别是匹配方式不一样
*是贪婪量词,就是尽可能的一次匹配更多的字符,后面紧跟着一个?就变成隋性量词了,就是一次尽可能匹配更少的符。比如var str = "abc9bd9eg9et9ee";
reg1 = /9\w*9/;
reg2 = /9\w*?9/;
alert(str.replace(reg1,""));
alert(str.replace(reg2,""));发现reg1匹配了9bd9eg9et9,而reg2只匹配了9bd9