正则表达式中,星号加问号是匹配什么(分开我知道),比如/A*?/究竟匹配的是什么,请高人指点

正则表达式中,星号加问号是匹配什么(分开我知道),比如/A*?/究竟匹配的是什么,请高人指点。最好能举例说明一下,谢谢谢谢BlackBeetle83,*匹配前面的子表达式... 正则表达式中,星号加问号是匹配什么(分开我知道),比如/A*?/究竟匹配的是什么,请高人指点。最好能举例说明一下,谢谢
谢谢 BlackBeetle83 ,
* 匹配前面的子表达式零次或多次。
? 匹配前面的子表达式零次或一次。
这个我知道,但是在一起我就不太懂了。已经有零次或多次后面为何又来一个问号呢
展开
 我来答
百度网友daaf46d89
推荐于2017-11-23 · TA获得超过1189个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:515万
展开全部
像+ * ? 以及{M,N}
这几种量词(匹配数量)默认是属于贪婪量词,进行贪婪匹配
什么叫做贪婪匹配呢?贪婪就是尽可能的多匹配,贪心的意思
比如现在目标字符串是 AAAA 四个A组成的字符串
A* 和 A+ 都会匹配 AAAA
A? 则会匹配 A
这就是贪婪匹配,实际运用中,有的时候我们却希望尽可能少的匹配
比如目标字符串 <span>a</span><span>b</span>
此时如果我们使用了贪婪量词
<span>.*</span> 则会匹配 <span>a</span><span>b</span> 整个字符串
可是我们只想要匹配第一对span标签怎么办?此时就需要用到懒惰量词,意思也很明显了,能偷懒就偷懒,呵呵,懒惰量词与贪婪量词的差别就是在贪婪量词的后面加个?号,就构成了懒惰量词,如下表
贪婪量词 懒惰量词
A* A*?
A+ A+?
A? A??
A{M,N} A{M,N}?
还是以目标字符串 AAAA 来讨论
A*?
*号是匹配0次或多次,要偷懒怎么办呢?当然是最少次数了,也就是0 所以在这里匹配的结果是
没有匹配到任何内容
A+?
+是1次或多次,分析方法同上,最少次数是1次,所以匹配结果就是 A
A??
?是0次或1次,所以这里也不进行匹配,会偷懒吧,呵呵
再来看看刚刚的
<span>a</span><span>b</span>
要匹配第一对span,用懒惰量词就是<span>.*?</span>
我已经说的够明白了吧?这些内容我以前都是查了好多资料才知道的。
正则表达式是相当强大的语言,尤其在进行字符匹配和查找时,当然要需要花一定的时间才能掌握,如果有问题可以百度HI我,进行探讨
疯狂代码
2010-12-01 · TA获得超过264个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:538万
展开全部
懒惰匹配
比如 字符为
<div>这里是测试</div></div>这里是重点</div>
如果是<div>.*?</div> 那么是匹配<div>这里是测试</div>
如果是<div>.*</div> 那么是匹配 <div>这里是测试</div></div>这里是重点</div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BlackBeetle83
2010-12-01 · 超过12用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:23.3万
展开全部
* 匹配前面的子表达式零次或多次。
? 匹配前面的子表达式零次或一次。

JavaScript 例子:
var s="<h1><h2>";
alert(s.replace(/<.*?>/,""));
alert(s.replace(/<.*>/,""));

通常利用?来实现懒惰匹配。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式