本帖最后由 Timelord 于 2023-11-15 19:51 编辑
具体说明可以看源码根目录下的readme,我在此简单说明
本算法用途是判断一串文本是否符合预定义的格式结构,当然你也可以用正则,但这个更简单
举例说明,如下表达式:
{[48,48]{[49,49]}{[32,32]{[65,90;97,122]}}}[65,65]
匹配形如以下格式的文本
0111 abc01 defA
每个中括号包裹的对象为asc码范围,对应带匹配文本中的一个字符,花括号包裹的对象结构可以在带匹配文本的对应位置出现多次。
具体原理九十构建匹配树,再将树应用到待匹配文本上。
至于这个有什么用,我是用来匹配合法的http请求文本结构,格式文本如下:
{[65,90]}[32,32]{[33,126]}[32,32]{[33,126]}[13,13][10,10]{{[65,90;97,122]}[58,58]{[32,126]}[13,13][10,10]}[13,13][10,10]
易语言调用效果如下:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | tree | 整数型 | | | ret | 整数型 | | |
tree = fexp_build_tree (yformat.内容 )ret = fexp_match_text (ytext.内容, tree )判断 (ret = 0 )信息框 (“yes”, 0, , )信息框 (“no”, 0, , )fexp_free_tree (tree)
FormatExpect_v1.0.zip
(1.84 MB, 下载次数: 6)
|