基础 - 匹配0次或多次

  • 作者:KK

  • 发表日期:2017.6.8


要点速读

知识点:平时a是匹配一个字母a,a+是匹配一个或多个字母a,而当我们要匹配0个或多个时就要用a*了,其实就是*号起作用

  • b*c匹配acdc,因为b可以出现0次

  • b*c匹配abcdbc,因为b也可以出现大于0次

  • b*c匹配abbcdbbc

  • b*c不匹配abed

  • <p>.*</p>匹配<div>aaa<p></p>bbb</div>里面的空内容p标签,因为.表示任意字符,再加上*表示任意字符可以出现0次或多次,所以就是说可以没有字符


JS代码

console.log(
	'acd'.match(/b*c/)[0], // c
	'abcd'.match(/b*c/)[0], // bc
	'abbcd'.match(/b*c/)[0], // bbc
	'abed'.match(/b*c/), // null
	'<div>aaa<p></p>bbb</div>'.match(/<p>.*<\/p>/)[0] // <p></p>
);

PHP代码

preg_match('#b*c#', 'acd', $matchResult1);
preg_match('#b*c#', 'abcd', $matchResult2);
preg_match('#b*c#', 'abbcd', $matchResult3);
preg_match('#b*c#', 'abed', $matchResult4);
preg_match('#<p>.*</p>#', '<div>aaa<p></p>bbb</div>', $matchResult5);

header('Content-type:text/plain');
print_r([
	$matchResult1[0], // c
	$matchResult2[0], // bc
	$matchResult3[0], // bbc
	$matchResult4, // 空数组
	$matchResult5[0], // <p></p>
]);