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

来源:1-1 课程介绍

ude

2019-05-30 13:26:16

				
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"]		

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

写回答

2回答

好帮手慕码

2019-05-30

同学你好!

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

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

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

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

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

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

0

好帮手慕码

2019-05-30

同学你好!

第一个string:

http://img.mukewang.com/climg/5cef949d0001b45605710139.jpg

第二个string:

http://img.mukewang.com/climg/5cef94a40001d11009280146.jpg

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


0
hde
h 为什么呢?为什么第一个匹配了还会再匹配,而第二个就不会了呢?
h019-05-30
共1条回复

0 学习 · 14456 问题

查看课程