QQ登录

只需一步,快速开始

发帖

[算法分享]提取出文本中的 DR 码 [技术分享]

[复制链接]
tang_ge开发者认证 发表于 2022-7-8 18:01:44 | 显示全部楼层 |阅读模式
本帖最后由 tang_ge 于 2022-7-25 10:45 编辑

虽然使用正则可以快速提取出文本中的 DR 码
正则文本:
  1. \[DR:(image|card|at|emoji|music|video|file|record),(.*)\]
复制代码


效果:

对于单个 DR 码很好用,但是多个就出现问题(匹配到的结果不是我们想要的),所以要换思路,想到之前群友分享的用 精益模块 中的 文本_* 操作提取 DR 码,研究了下终于搞出可以稳定运行的代码




在提取出 DR 码之后利用每个参数间用“,”分割的特点,使用文本分割转为数组进行下一步处理


这里写了一个 Class_Code 类来对 DR 码转换为 Json 文本

  1. .版本 2

  2. .程序集 Class_Code
  3. .程序集变量 Json, 类_json

  4. .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用

  5. .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

  6. .子程序 GetParam, 文本型, 公开
  7. .参数 Key, 文本型

  8. 返回 (Json.取通用属性 (“Data.” + Key, ))


  9. .子程序 SetParam, , 公开
  10. .参数 Key, 文本型
  11. .参数 Value, 文本型
  12. .局部变量 _Json, 类_json

  13. _Json.置属性 (Key, Value, )
  14. Json.置属性 (“Data”, _Json.取数据文本 (), 真)


  15. .子程序 SetParams, , 公开
  16. .参数 Params, 文本型, 数组
  17. .局部变量 i, 整数型
  18. .局部变量 p, 文本型

  19. .计次循环首 (取数组成员数 (Params), i)
  20.     p = Params [i]
  21.     SetParam (文本_取左边 (p, “=”, , ), 文本_取右边 (p, “=”, -1, ))
  22. .计次循环尾 ()


  23. .子程序 GetType, 文本型, 公开

  24. 返回 (Json.取通用属性 (“Type”, ))


  25. .子程序 SetType, , 公开
  26. .参数 Type, 文本型

  27. Json.置属性 (“Type”, Type, )


  28. .子程序 GetCodeData, 文本型, 公开

  29. 返回 (Json.取数据文本 ())

复制代码


当然还用到了取出数组中指定范围内的一个函数:
  1. .版本 2

  2. .子程序 数组_取指定范围, 逻辑型
  3. .参数 Start, 整数型
  4. .参数 End, 整数型
  5. .参数 Ref_List, 文本型, 参考 数组
  6. .局部变量 i, 整数型
  7. .局部变量 step, 整数型
  8. .局部变量 res, 文本型, , "0"

  9. .如果真 (Start > End 或 End > 取数组成员数 (Ref_List) 或 Start < 1)
  10.     返回 (假)
  11. .如果真结束
  12. step = End - Start + 1
  13. .计次循环首 (step, i)
  14.     加入成员 (res, Ref_List [Start + i - 1])
  15. .计次循环尾 ()
  16. Ref_List = res
  17. 返回 (真)

复制代码



最终结果:


源码:

游客,如果您要查看本帖隐藏内容请回复



*需要精益模块



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

玄色开发者认证 发表于 2022-7-8 19:07:35 | 显示全部楼层
看了楼主的帖子,我只想说一句很好很强大!
回复

使用道具 举报

萨比 发表于 2022-10-30 22:48:47 | 显示全部楼层
谢谢分享
回复

使用道具 举报

keira 发表于 2022-10-31 14:22:53 | 显示全部楼层
1
回复

使用道具 举报

你和我和 发表于 2023-6-6 19:09:35 | 显示全部楼层
6666666
回复

使用道具 举报

feto 发表于 2023-6-17 21:33:18 | 显示全部楼层
强大的易语言能力
回复

使用道具 举报

Powered by Discuz! © 2001-2024 Discuz! Team. X3.5

GMT+8, 2024-4-23 23:25 , Processed in 0.054372 second(s), 20 queries Archiver|手机版|梦幻社区 | 鄂ICP备17017983号-3 |

登录切换风格
快速回复 返回顶部 返回列表