正则与文本处理指南
正则贪婪与懒惰:明确分隔符规则
比较贪婪、懒惰与否定字符类,避免把简单分隔符匹配当成嵌套格式解析器。
观察贪婪匹配范围
贪婪量词会尽量多消费字符,同时允许剩余模式完成匹配。
两个括号值可能被点星模式一次吞下,测试时应检查完整命中内容,而非只看是否成功。
'[one][two]'.match(/\[.*\]/g) → ['[one][two]']改为懒惰量词
量词后加问号让它优先消费更少字符,但后续无法匹配时仍会扩展。
简单扁平括号格式中,下面的懒惰版本会分别找到两个值。
'[one][two]'.match(/\[.*?\]/g) → ['[one]','[two]']直接表达不允许的分隔符
否定字符类可明确内容不能包含结束分隔符,通常比点星更清楚表达扁平语法。
若也不允许换行,应显式排除,点号与字符类的行为不同。
/\[[^\]\r\n]*\]/g明确扁平语法边界
转义分隔符与嵌套括号需要更多规则,懒惰量词不理解嵌套或字符串引用。
结构化语言应使用对应解析器;扁平匹配器上线前测试缺闭合、空括号和禁止换行。