zoukankan      html  css  js  c++  java
  • [Regular] 3、正则表达式引擎的构造

    正则引擎一般分为:DFA 引擎和传统NFA引擎. 一般支持忽略优量词就是传统NFA引擎,否则就是DFA或其他引擎.

    顾名思义,既然是引擎肯定会有多种零件构成,要真正了解引擎的工作原理, 还就必须先了解其零件.

    正则引擎的零件分为文字字符、量词、字符组、括号等等。

    文字文本 (如: a、\*、!、好)

      如果一个正则表达式只包含纯文本字符,如abeen 正则引擎会将其视为:一个a,接着一个b,接着一个e,接着一个e,接着一个n. 这应该不难理解。呵呵

    字符组[…]、点号.、Unicode属性及其他

      需要说明的一点就是无论字符组的长度是多少,它都只能匹配一个字符。

    捕获型括号()

      用于捕获文本的括号(而不是用于分组的括号)不会影响匹配的过程。

    锚点

      锚点可以分为:简单锚点和复杂锚点。

      简单锚点只是检查目标字符中的特定位置(如^,$),或者是比较两个相邻字符(如\<,\b)。

      复杂锚点(环视) 能包含任意复杂的子表达式。

    非“电动”的括号、反向引用和忽略优先量词

      捕获括号、以用相应的反向引用和表示法(如$1或\1)、忽略优先量词只对NFA引擎起作用,DFA不支持。

  • 相关阅读:
    取消PHPCMS V9后台新版本升级提示信息
    phpcmsv9全站搜索,不限模型
    jq瀑布流代码
    phpcms v9模版调用代码
    angular.js添加自定义服务依赖项方法
    angular多页面切换传递参数
    angular路由最基本的实例---简单易懂
    作用域事件传播
    利用angular控制元素的显示和隐藏
    利用angular给节点添加样式
  • 原文地址:https://www.cnblogs.com/abeen/p/1495799.html
Copyright © 2011-2022 走看看