基础 - 匹配一个或多个 ¶
作者:KK
发表日期:2017.6.7
虽然这个在前面匹配数字已经初步接触了一下+
号的作用,但这里应该正式讲讲
首先认识一下正则的基础能力:匹配指定内容 ¶
这个其实平时不会这么用,但要这样匹配也可以
JS代码 ¶
var str = 'May',
pattern = /a/,
matchResult = str.match(pattern);
console.log(matchResult[0]); // a
这里的表达式没什么特殊内容,/a/
主是说要在里面匹配一个字母叫做a,然后甚至写成ay
也可以匹配出ay两个字母
我们匹配内容无非是等同于查找需要的内容,如果上面这样的需求的话一般应该直接使用indexOf来查找:var result = 'May'.indexOf('ay');
所以这样的表达式没有实际意义,但我只是顺带一提正则表达式可以被程序员写成这么多余的存在,而正则本身却不是多余的,哈哈
PHP代码 ¶
$str = 'May';
$pattern = '#ay#';
preg_match($pattern, $str, $matchResult);
echo $matchResult[0]; // ay
匹配一个或多个 ¶
好了有营养的东西来了,如果我们要在abbbc
里匹配连续出现的b,又或者在qbbbbbbbc
JS代码 ¶
var str1 = 'abc',
str2 = 'hbbbm',
str3 = 'xbbbbbbbbbbz',
pattern = /b+/,
matchResult1 = str1.match(pattern),
matchResult2 = str2.match(pattern),
matchResult3 = str3.match(pattern);
console.log(matchResult1[0]); // b
console.log(matchResult2[0]); // bbb
console.log(matchResult3[0]); // bbbbbbbbbb
PHP代码 ¶
$str1 = 'abc';
$str2 = 'hbbbm';
$str3 = 'xbbbbbbbbbbz';
$pattern = '#b+#';
preg_match($pattern, $str1, $matchResult1);
preg_match($pattern, $str2, $matchResult2);
preg_match($pattern, $str3, $matchResult3);
echo $matchResult1[0] . PHP_EOL; // b
echo $matchResult2[0] . PHP_EOL; // bbb
echo $matchResult3[0] . PHP_EOL; // bbbbbbbbbb
解释 ¶
在要匹配的内容后面放个+
号表示匹配这个内容1次或多次,所以字母b出现1次或多次都能被匹配出来