嘿,大家好!今天咱们来聊聊 JavaScript 正则表达式的那些个小妖精,特别是“贪婪”、“非贪婪”这俩兄弟,还有那些神出鬼没的“lookahead”和“lookbehind”断言。保证让你听完之后,感觉自己好像突然开了天眼,以后写正则再也不头疼了。 第一章:正则引擎的“贪吃蛇”—— 贪婪与非贪婪匹配 想象一下,你手头有一堆糖果,然后来了一条贪吃蛇,它会怎么吃?当然是能吃多少吃多少!这就是正则引擎的“贪婪”模式。 1.1 什么是贪婪匹配? 贪婪匹配,顾名思义,就是正则引擎在匹配的时候,尽可能多地匹配符合模式的字符。 它会尽力扩展匹配范围,直到无法再匹配为止。 举个例子: const str = “aaaaaa”; const greedyRegex = /a+/; // + 表示匹配一个或多个 ‘a’ const match = str.match(greedyRegex); console.log(match); // 输出: [ ‘aaaaaa’, index: 0, input: ‘aaaaaa’, groups: undefined ] 在这个例子里, a+ 尽可能地匹配了所 …