正则表达式(.+),(.+?),(.*?)的理解

432 阅读1分钟
  • *   匹配前面的子表达式零次或者多次。
  • +  匹配前面的子表达式一次或者多次。
  • .   匹配除换行符\n之外的任何单字符
  • ?  非贪婪限定符。

1.贪婪匹配:匹配尽可能多的字符。即先看整个字符串是否匹配,如果不匹配就去掉字符串的最后一个字符继续匹配,直到发现匹配或者不剩字符。
2.懒惰匹配:匹配尽可能少的字符。从左往右开始匹配,直到发现匹配。

*和+的区别

var str = 'aaa'; 
str.match(/a(.*?)/)[0]; //"" 
str.match(/a(.+?)/)[0]; //"a"

``


``

贪婪匹配和懒惰匹配的区别

```
var str = 'aaa'; 
str.match(/a(.+)/)[0]; // "aaa" 
str.match(/a(.+?)/)[0]; // "a"
```