⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg_charset.cpp

📁 我的一个利用有限状态机的正则表达式的实现。
💻 CPP
字号:
#include "reg_charset.h"

/*

ASCII Name  Description  C Escape Sequence  
nul  null byte  \0  
bel  bell character  \a  
bs  backspace  \b  
ht  horizontal tab  \t  
np  formfeed  \f  
nl  newline  \n  
cr  carriage return  \r  
vt  vertical tab   
esc  escape   
sp  space  

*/


REG_CHAR_TYPE REG_CHAR_SET[] = {
  // TYPE                Char  Dec  Oct  Hex       
  // -------------------------------------      
     END_MARK,        // (nul)   0 0000 0x00 
     0x0,             // (soh)   1 0001 0x01 
     0x0,             // (stx)   2 0002 0x02 
     0x0,             // (etx)   3 0003 0x03 
     0x0,             // (eot)   4 0004 0x04 
     0x0,             // (enq)   5 0005 0x05 
     0x0,             // (ack)   6 0006 0x06 
     0x0,             // (bel)   7 0007 0x07 
     0x0,             // (bs)    8 0010 0x08 
     0x0,             // (ht)    9 0011 0x09 
     0x0,             // (nl)   10 0012 0x0a 
     0x0,             // (vt)   11 0013 0x0b 
     0x0,             // (np)   12 0014 0x0c 
     0x0,             // (cr)   13 0015 0x0d 
     0x0,             // (so)   14 0016 0x0e 
     0x0,             // (si)   15 0017 0x0f 
     0x0,             // (dle)  16 0020 0x10 
     0x0,             // (dc1)  17 0021 0x11 
     0x0,             // (dc2)  18 0022 0x12 
     0x0,             // (dc3)  19 0023 0x13
  // TYPE                Char  Dec  Oct  Hex 
  // ------------------------------------- 
     0x0,             // (dc4)  20 0024 0x14 
     0x0,             // (nak)  21 0025 0x15 
     0x0,             // (syn)  22 0026 0x16 
     0x0,             // (etb)  23 0027 0x17 
     0x0,             // (can)  24 0030 0x18 
     0x0,             // (em)   25 0031 0x19 
     0x0,             // (sub)  26 0032 0x1a 
     0x0,             // (esc)  27 0033 0x1b 
     0x0,             // (fs)   28 0034 0x1c 
     0x0,             // (gs)   29 0035 0x1d 
     0x0,             // (rs)   30 0036 0x1e 
     0x0,             // (us)   31 0037 0x1f 
     0x0,             // (sp)   32 0040 0x20 
     REG_TEXT,        // !      33 0041 0x21 
     REG_TEXT,        // "      34 0042 0x22 
     REG_TEXT,        // #      35 0043 0x23   
     REG_OPER,        // $      36 0044 0x24   
     REG_TEXT,        // %      37 0045 0x25   
     REG_TEXT,        // &      38 0046 0x26   
     REG_TEXT,        // '      39 0047 0x27   
     LPAREN,          // (      40 0050 0x28
  // TYPE                Char  Dec  Oct  Hex 
  // -------------------------------------   
     ( RPAREN | END_BY_PAREN ),
                      // )      41 0051 0x29   
     ASTER,           // *      42 0052 0x2a   
     REG_OPER,        // +      43 0053 0x2b   
     REG_OPER,        // ,      44 0054 0x2c   
     REG_TEXT,        // -      45 0055 0x2d   
     REG_TEXT,        // .      46 0056 0x2e   
     REG_TEXT,        // /      47 0057 0x2f   
     REG_DIGIT,       // 0      48 0060 0x30   
     REG_DIGIT,       // 1      49 0061 0x31   
     REG_DIGIT,       // 2      50 0062 0x32   
     REG_DIGIT,       // 3      51 0063 0x33   
     REG_DIGIT,       // 4      52 0064 0x34   
     REG_DIGIT,       // 5      53 0065 0x35   
     REG_DIGIT,       // 6      54 0066 0x36   
     REG_DIGIT,       // 7      55 0067 0x37   
     REG_DIGIT,       // 8      56 0070 0x38   
     REG_DIGIT,       // 9      57 0071 0x39   
     REG_TEXT,        // :      58 0072 0x3a   
     REG_TEXT,        // ;      59 0073 0x3b   
     REG_TEXT,        // <      60 0074 0x3c
  // TYPE                Char  Dec  Oct  Hex 
  // -------------------------------------   
     REG_TEXT,        // =      61 0075 0x3d   
     REG_TEXT,        // >      62 0076 0x3e   
     REG_OPER,        // ?      63 0077 0x3f   
     REG_TEXT,        // @      64 0100 0x40
     REG_ALPHABET,    // A      65 0101 0x41
     REG_ALPHABET,    // B      66 0102 0x42
     REG_ALPHABET,    // C      67 0103 0x43
     REG_ALPHABET,    // D      68 0104 0x44
     REG_ALPHABET,    // E      69 0105 0x45
     REG_ALPHABET,    // F      70 0106 0x46
     REG_ALPHABET,    // G      71 0107 0x47
     REG_ALPHABET,    // H      72 0110 0x48
     REG_ALPHABET,    // I      73 0111 0x49
     REG_ALPHABET,    // J      74 0112 0x4a
     REG_ALPHABET,    // K      75 0113 0x4b
     REG_ALPHABET,    // L      76 0114 0x4c
     REG_ALPHABET,    // M      77 0115 0x4d
     REG_ALPHABET,    // N      78 0116 0x4e
  // TYPE                Char  Dec  Oct  Hex 
  // -------------------------------------
     REG_ALPHABET,    // O      79 0117 0x4f
     REG_ALPHABET,    // P      80 0120 0x50
     REG_ALPHABET,    // Q      81 0121 0x51
     REG_ALPHABET,    // R      82 0122 0x52
     REG_ALPHABET,    // S      83 0123 0x53
     REG_ALPHABET,    // T      84 0124 0x54
     REG_ALPHABET,    // U      85 0125 0x55
     REG_ALPHABET,    // V      86 0126 0x56
     REG_ALPHABET,    // W      87 0127 0x57
     REG_ALPHABET,    // X      88 0130 0x58
     REG_ALPHABET,    // Y      89 0131 0x59
     REG_ALPHABET,    // Z      90 0132 0x5a
     LPAREN,          // [      91 0133 0x5b
     BACKSLASH,       // \      92 0134 0x5c
     ( RPAREN | END_BY_BRACKET ),
                      // ]      93 0135 0x5d
     REG_OPER,        // ^      94 0136 0x5e
     REG_TEXT,        // _      95 0137 0x5f
     REG_TEXT,        // `      96 0140 0x60 
     REG_ALPHABET,    // a      97 0141 0x61 
     REG_ALPHABET,    // b      98 0142 0x62
  // TYPE                Char  Dec  Oct  Hex 
  // ------------------------------------- 
     REG_ALPHABET,    // c      99 0143 0x63 
     REG_ALPHABET,    // d     100 0144 0x64 
     REG_ALPHABET,    // e     101 0145 0x65 
     REG_ALPHABET,    // f     102 0146 0x66 
     REG_ALPHABET,    // g     103 0147 0x67 
     REG_ALPHABET,    // h     104 0150 0x68 
     REG_ALPHABET,    // i     105 0151 0x69 
     REG_ALPHABET,    // j     106 0152 0x6a 
     REG_ALPHABET,    // k     107 0153 0x6b 
     REG_ALPHABET,    // l     108 0154 0x6c 
     REG_ALPHABET,    // m     109 0155 0x6d 
     REG_ALPHABET,    // n     110 0156 0x6e 
     REG_ALPHABET,    // o     111 0157 0x6f 
     REG_ALPHABET,    // p     112 0160 0x70 
     REG_ALPHABET,    // q     113 0161 0x71 
     REG_ALPHABET,    // r     114 0162 0x72 
     REG_ALPHABET,    // s     115 0163 0x73 
     REG_ALPHABET,    // t     116 0164 0x74
  // TYPE                Char  Dec  Oct  Hex  
  // ------------------------------------- 
     REG_ALPHABET,    // u     117 0165 0x75 
     REG_ALPHABET,    // v     118 0166 0x76 
     REG_ALPHABET,    // w     119 0167 0x77 
     REG_ALPHABET,    // x     120 0170 0x78 
     REG_ALPHABET,    // y     121 0171 0x79 
     REG_ALPHABET,    // z     122 0172 0x7a 
     LPAREN,          // {     123 0173 0x7b 
     REG_OPER,        // |     124 0174 0x7c 
     ( RPAREN | END_BY_BRACE ),
                      // }     125 0175 0x7d 
     REG_TEXT,        // ~     126 0176 0x7e 
     0x0              // (del) 127 0177 0x7f 
  //-------------------------------------
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -