不是很明白*和+

来源:3-19 编程练习

哎呦啊狗蛋

2019-05-20 09:59:57

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>正则表达式</title>
</head>
<body>
<script type="text/javascript">
    str="cctv have [cctv1]、[cctv2]、[cctv3]、[cctv4]……";
	/*此处添加代码*/
	var pattern = /\[\w+?\]/;
	var pattern1=/\[\w+\]/;//+表示一次或多次,为什么不匹配后面的[cctv2]等
	var pattern2=/\[\w*\]/;//*表示零次或多次,为什么不匹配后面的[cctv2]等
    document.write(pattern.exec(str)+'<br/>');
    document.write(pattern1.exec(str)+'<br/>');
    document.write(pattern2.exec(str)+'<br/>');
</script>
</body>
</html>


写回答

1回答

好帮手慕星星

2019-05-20

你好,代码中理解的+和*没有问题,是\w的问题:

\w匹配包括下划线的任何单词字符,类似但不等价于“[A-Za-z0-9_]”,所以两个[]之间的顿号匹配不上,如果改成\S(匹配任何可见字符)就可以:

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

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

祝学习愉快!

0

0 学习 · 14456 问题

查看课程