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不支持。

  • 相关阅读:
    出现Unexpected token, expected ","报错原因
    select属性的作用
    程序员无广告版百度
    VUE核心组件
    ajax的作用
    SSH整合
    Unity安装教程
    bean的生命周期
    BeanFactory
    打印机
  • 原文地址:https://www.cnblogs.com/abeen/p/1495799.html
Copyright © 2011-2022 走看看