摘要:
1、只匹配期望的文本,排除不期望的文本。2、易于控制和理解。3、使用NFA,注意效率问题。能够匹配,尽快匹配并返回。不能匹配,尽快报告匹配失败。 阅读全文
摘要:
考虑 ^.*: 与^.*?: 的区别:1、前者从行头匹配到最后一个: 后者从行头匹配到第一个:2、注意:假设一行中有多个冒号,前者只能匹配一个,后者可以匹配多个。如果确定一行中最多只有一个冒号,使用二者是等价的。这里存在效率问题。3、如果冒号靠近行的开头,使用后者,少吃就能匹配成功,如果使用前者,情... 阅读全文
摘要:
1、匹配优先存在的问题,考虑下面的情况: The name "dumpling" is said "jiaozi" in Chenese. 我们想要匹配 双引号引起来的单词,这里也就是 dumpling和jiaozi。 使用 ".*" ,出现什么问题? "匹配第一个双引号,.* 量词优先匹配,一直... 阅读全文
摘要:
1、NFA引擎最重要的性质是:遇到两个匹配成功的情况,选择其中的一个,同时记住另一个,作为备选状态。2、需要做出选择的情况有:量词和多选结构。量词是匹配优先的,而多选结构往往是按顺序选择的。3、选择一条支路,全局匹配成功,匹配结束。如果失败,后退一步,选择另一条支路,后退只是后退一步,符合后进先出。... 阅读全文