知识卡片

引导扫描跳过噪声

普通读书笔记卡 · 1914.e.1

内容

处理代码注释这类任务时,不只要匹配目标,还要让引擎一次性跳过字符串等非目标区域。把“应保留的结构”和“应删除的结构”并列进表达式,可避免从内部错误起跑。

参考来源

- 位置:第6章《打造高效正则表达式》「引导匹配的工具」与「引导良好的正则表达式速度很快」小节(源文件:_epub-src/text/part0011_split_007.html) - 结论依据:原文说明单纯匹配C注释的表达式会在双引号字符串内部误判为注释开始,解决办法是把字符串和注释的多选分支并列,让引擎遇到字符串时一次性跳过而非逐字符尝试,直接支持卡片对引导扫描需并列'保留结构'与'跳过结构'以避免从内部误判起跑的论述。 - 原始内容:"问题在于,如果在字符串内部找到注释的起始标记,正则表达式的匹配也不会停止……最好是能够告诉正则引擎,遇见双引号字符串时是应该尝试匹配还是直接跳过……这样,正则表达式永远不会从双引号字符串或者注释内部开始尝试,这就是成功的关键。"