请老师解答一下这个正则所表达的意思?

请老师解答一下这个正则所表达的意思?

var str='<td><p>a</p></td><td><p>b</p></td>';
	var pattern=/<td>.*?<\/td>/;
	console.log(pattern.exec(str));

var pattern=/<td>.*?<\/td>/;中,这个点什么意思?

可以理解成<td>至少匹配0次但至多匹配1次,与</td>中间部分省略,</td>匹配一次吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,粘贴出来的代码打印索引为0:

http://img1.sycdn.imooc.com//climg/5ef46bb4099ed6c203730077.jpg

不是同学讲的:打印结果是:index=10;而不是index=0。请问是其他的代码吗?如下:

http://img1.sycdn.imooc.com//climg/5ef46bfc09cc5ddc03810289.jpg

可能是因为从c开始匹配,匹配到的内容是[cctv1],所以第一个"["所在的索引为10.即:

http://img1.sycdn.imooc.com//climg/5ef46c4609da920104340058.jpg

祝学习愉快~

好帮手慕码 2020-06-25 11:40:15

同学你好,解答如下:

1、点(.)表示匹配除换行符 \n 之外的任何字符;

2、可以这么理解,即:.*?的意思是匹配任意字符,尽可能少的次数。

所以整体正则的意思就是:尽可能少的匹配<td></td>之间的内容,因此只匹配到“<td><p>a</p></td>”

祝学习愉快~

  • 提问者 张月白 #1
    老师我想问下为什么控制台的打印结果是:index=10;而不是index=0; Array(1) 0: "[cctv1]" groups: undefined index: 10 input: "cctv have [cctv1]、[cctv2]、[cctv3]、[cctv4]……" length: 1 __proto__: Array(0)
    2020-06-25 11:45:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师