请问这两个正则匹配的问题?

请问这两个正则匹配的问题?

				
var regex = /good|nice/g;  var string = "good idea, nice try.";
  console.log( string.match(regex) );  // => ["good", "nice"]
var regex = /good|goodbye/g;  var string = "good";
  console.log( string.match(regex) );  // => ["good"]		

为什么第一个表达式能匹配两个,第二个却只能匹配到一个呢

正在回答 回答被采纳积分+1

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

2回答
好帮手慕码 2019-05-30 17:58:40

同学你好!

正则中:| 表示或,指明两项之间的一个选择。

我们换一个比较好理解的方式:使用字符串去匹配正则表达式(单词挨个儿从前往后匹配)

(1)第一个字符串  单词good匹配到了/good|nice/g中的good,之后good idea, nice匹配到了/good|nice/g中的nice

(2)第二个字符串 good匹配到了/good|goodbye/g;中的good。(匹配上第一个good后,不会往后面的goodbye执行,除非有第二个单词)后面没有单词了,所以只匹配到一个

有一些绕,同学可以结合代码慢慢理解一下~

如果帮助到了你 欢迎采纳 祝学习愉快~

好帮手慕码 2019-05-30 16:19:29

同学你好!

第一个string:

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

第二个string:

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

如果帮助到了你 欢迎采纳 祝学习愉快~


  • 提问者 ude #1
    为什么呢?为什么第一个匹配了还会再匹配,而第二个就不会了呢?
    2019-05-30 17:37:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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