关于或符号

来源:4-4 匹配HTML标签

qq_慕前端7271312

2020-09-24 22:48:12

    老师,请问或符号(|)是怎么匹配的?

    var str="abc";

    var pattern=/ab|a/g;

    var pattern2=/a|ab/g;

    var pattern3=/a|b/g;

    console.log(str.match(pattern));    返回["ab"]

    console.log(str.match(pattern2));    返回["a"]

    console.log(str.match(pattern3));    返回["a","b"]

看pattern和pattern2或符号匹配到一个就不再进行匹配了;但pattern3中或符号匹配完a又继续匹配了b,这是为什么?

写回答

1回答

好帮手慕久久

2020-09-25

同学你好,问题解答如下:

“|(或)”代表正则表达式可以匹配的模式有多种,三个正则表达式的匹配结果不同,不仅与“|”有关,还与match方法有关。在全局匹配模式下,match方法,会把所有匹配的结果都输出,具体如下:

str.match(pattern)的结果说明:“/ab|a/g”(表示可以匹配“ab”或者“a”)在匹配字符串“abc”时,会从头往后匹配,第一次会匹配到“ab”,由于是全局匹配,所以会从当前结果往后继续匹配,即从str的字符"c"开始,往后继续匹配,由于字符"c"后面(包括c),没有能匹配上的内容了,所以最终的结果就是["ab"]。

str.match(pattern2)的结果说明:同上,先会匹配到str中的字符a,然后从字符a往后继续匹配,由于“bc”中没有符合正则“/a|ab/g”的内容,所以最终的结果就是["a"]。

str.match(pattern3)的结果说明:同上,先匹配到字符a,然后从a往后继续匹配,由于字符a后面是“bc”,而“bc”有符合正则“/a|b/g”的部分,所以还可以匹配到字符b,因此结果为["a","b"]。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

1

0 学习 · 14456 问题

查看课程

相似问题

关于或符号

回答 1

关于或符号

回答 1

回答 2