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"
肯定也匹配得出来了