正则表达式引擎的内部工作机制是什么

这篇文章给大家分享的是有关正则表达式引擎的内部工作机制是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都做网站、成都网站制作、企业网站建设、手机网站开发、网页设计、品牌网站建设、网页制作、做网站、建网站。创新互联拥有实力坚强的技术研发团队及素养的视觉设计专才。

了解正则表达式引擎的必要性:

知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。

正则表达式引擎的种类:

有两种类型的引擎:文本导向(text-directed)的引擎和正则导向(regex-directed)的引擎。Jeffrey Friedl把他们称作DFA和NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如“惰性”量词(lazy quantifiers)和反向引用(backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前***的引擎。

你可以轻易分辨出所使用的引擎是文本导向还是正则导向。如果反向引用或“惰性”量词被实现,则可以肯定你使用的引擎是正则导向的。你可以作如下测试:将正则表达式<>应用到字符串“regex not”。如果匹配的结果是regex,则引擎是正则导向的。如果结果是regex not,则是文本导向的。因为正则导向的引擎是“猴急”的,它会很急切的进行表功,报告它找到的***个匹配 。

正则表达式引擎的小小总结:

正则导向的引擎总是返回最左边的匹配,这是需要你理解的很重要的一点:即使以后有可能发现一个“更好”的匹配,正则导向的引擎也总是返回最左边的匹配。

当把<>应用到“He captured a catfish for his cat”,引擎先比较<>和“H”,结果失败了。于是引擎再比较<>和“e”,也失败了。直到第四个字符,<>匹配了“c”。<>匹配了第五个字符。到第六个字符<>没能匹配“p”,也失败了。引擎再继续从第五个字符重新检查匹配性。直到第十五个字符开始,<>匹配上了“catfish”中的“cat”,正则表达式引擎急切的返回***个匹配的结果,而不会再继续查找是否有其他更好的匹配。

感谢各位的阅读!关于“正则表达式引擎的内部工作机制是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


新闻名称:正则表达式引擎的内部工作机制是什么
文章路径:
http://azwzsj.com/article/gidggo.html