第六章:打造高效正则表达式
摘要:前提:主要是说NFA引擎 1.匹配的正确性和效率。需要理解引擎的工作原理,关键要理解回溯的工作机制。 2.在传统NFA中,应该把匹配概率大的分支放在前面,因为传统NFA匹配成功后就继续后面的匹配而不回溯,这样通过减少回溯次数来提高效率。但是POSIX NFA任何情况下都会尝试所以的分支。 这中优化只
阅读全文
第五章:正则表达式常见技巧
摘要:1.原则 匹配期望的文本,排除不期望的文本 必要易于控制和理解 NFA引擎保证效率(成功的效率和失败的效率) 2.匹配文件路径 3.匹配浮点数 4.匹配引号包含的内容,内容可以是转义的字符(\") 多选分支的最好不要有重叠部分(两者都可以匹配的情况) 5. 6.对正在表达式应用方式和目标数据做出合理
阅读全文
第四章
摘要:1.正在表达式引擎分类:DFA,NFA;由于众多变体不能统一,所以用POSIX标准来规范(POSIX规定什么样的表达式应该匹配什么样的字符串),其中DFA基本满足,但NFA需要满足则需要很多改变,就出现了传统NFA(不符合POSIX标准)和POSIX NFA(满足POSIX标准)。所以可以分为3类
阅读全文
第三章
摘要:1.正则表达式流派在POSIX中的功能区别 2.程序语言中,正则表达式引擎接收到的正则表达式是经过程序语言按照程序语言设定的元字符解释后的串。 3.忽略优先量词 3.忽略优先量词
阅读全文
第二章
摘要:1.嵌套括号,捕获和分组的对应关系 123 2324fg 123.12C temp is 123 pointnum is units is temp is 2324 pointnum is units is fg temp is 123.12 pointnum is .12 units is C 注
阅读全文
第一章
摘要:1.正则表达式只认识行和字符,所以平时考虑问题要从这个角度来考虑。比如 “^cat" ,理解为”以cat开始的行“和理解为”匹配行头字符为'c'然后跟着'a'然后跟着‘c'“从效果上看是一样的,但是后者更容易指出代码的实现方式,以及为性能优化提供参考。 2.正则表达式由元字符和文字两部分组成,其中是
阅读全文