84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
正则表达式: \"(.*?)\"
文本为 : suggest_so({q:"科技",p:true,s:["科技苑","科技手抄报图片大全","科技小制作大全","科技论文","科技幻想画","科技小制作小发明","科技美学","科技日报","科技画","科技部"]})
匹配结果为:
问题: 初学正则,只看出来这个正则表达式中有懒惰,不明白为什么能只匹配汉字部分,请指导
认证高级PHP讲师
不是只匹配汉字部分,是匹配了两个"内的内容,.表示匹配任意字符,*表示匹配0次以上,合在一起就是匹配全文字符串,但是因为前后有引号显示,所以匹配的是引号内的全文。而?则是表示非贪婪匹配,也就是碰到符合这个条件的立马就匹配,你可以把?取消掉试试就能立马看出差别了。推荐多去看看正则30分钟入门教程,绝对经典。
"
.
*
?
引号 + 任意尽可能短的内容 + 引号
引号
任意尽可能短的内容
只是你引号里面都是汉字而已,你给一个"abc"肯定也匹配得出来了
"abc"
不是只匹配汉字部分,是匹配了两个
"
内的内容,.
表示匹配任意字符,*
表示匹配0次以上,合在一起就是匹配全文字符串,但是因为前后有引号显示,所以匹配的是引号内的全文。而?
则是表示非贪婪匹配,也就是碰到符合这个条件的立马就匹配,你可以把?
取消掉试试就能立马看出差别了。推荐多去看看正则30分钟入门教程,绝对经典。引号
+任意尽可能短的内容
+引号
只是你引号里面都是汉字而已,你给一个
"abc"
肯定也匹配得出来了