基础 - 全局匹配

  • 作者:KK

  • 发表日期:2017.6.9


像大小写模式加i修饰一样,加g就是全局模式

a.c只匹配“abc hehe aoc heyhey aqc xxx”里的abc,其实整个字符串中有abc aoc aqc 三个是符合的,为什么只匹配一个呢?

原因就是我们没有声明全局匹配,它遇到第一个就停下来了

全局匹配是一个模式,记得前面讲大小写匹配模式时JS代码是/apple/i在后面加i来修饰的对吧,而全局匹配模式就是加个g来修饰,下面是非全局和全局模式的两种匹配情况输出


JS代码

console.log(  'abc hehe aoc heyhey aqc xxx'.match(/a.c/)  ); // abc
console.log(  'abc hehe aoc heyhey aqc xxx'.match(/a.c/g)  ); // abc  aoc  aqc

PHP代码

header('Content-type:text/plain');

preg_match('#a.c#', 'abc hehe aoc heyhey aqc xxx', $matchResult1);
print_r($matchResult1); //只有 abc

//注意PHP是通过 preg_match_all 这个函数来实现的,不是在定界符后面加g
preg_match_all('#a.c#', 'abc hehe aoc heyhey aqc xxx', $matchResult2);
print_r($matchResult2); // abc  aoc  aqc