知识卡片

消除循环套路

普通读书笔记卡 · 1914.e

内容

“循环消除”把模糊的重复分支改写成 opening normal* (special normal) closing。关键是 normal 与 special 不能从同一位置匹配,normal 不能空匹配,special 要尽量固化。

参考来源

- 位置:第6章《打造高效正则表达式》「消除C语言注释匹配的循环」小节(源文件:_epub-src/text/part0011_split_007.html) - 结论依据:原文给出消除循环的通用公式,把normal和special部分分开处理,并强调special部分不能由多次迭代完成、二者不能从同一位置匹配,直接支持卡片对循环消除改写规则的论述。 - 原始内容:"special 部分匹配的文本不能由该部分的多次迭代完成……按照通用的消除套路,我们得到……「/x[^x]*x+([^/x][^x]*x+)*/」。"