不是很明白*和+
来源: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回答
你好,代码中理解的+和*没有问题,是\w的问题:
\w匹配包括下划线的任何单词字符,类似但不等价于“[A-Za-z0-9_]”,所以两个[]之间的顿号匹配不上,如果改成\S(匹配任何可见字符)就可以:
祝学习愉快!
相似问题