精易论坛

标题: 取文本指定内容来高手 [打印本页]

作者: 58110670    时间: 昨天 11:22
标题: 取文本指定内容来高手
[{"text":"学校3号楼(34,50)非常棒,","x":181,"y":30,"rect_x1":18,"rect_y1":21,"rect_x2":326,"rect_y2":18,"score":0.97},{"text":"事情就有劳了!","x":93,"y":58,"rect_x1":3,"rect_y1":50,"rect_x2":180,"rect_y2":16,"score":0.9791}]  

这不是固定的乱码,也有可能是这样的

[{"text":"为免危害人间,请前往学校5号楼(113,75)课后作业","x":260,"y":53,"rect_x1":25,"rect_y1":41,"rect_x2":471,"rect_y2":24,"score":0.9141},{"text":"今日:35次,到60次可以升级学校校长","x":261,"y":214,"rect_x1":27,"rect_y1":205,"rect_x2":468,"rect_y2":19,"score":0.9847},{"text":":35/90次","x":247,"y":270,"rect_x1":26,"rect_y1":259,"rect_x2":443,"rect_y2":23,"score":0.9802},{"text":"任务剩余时间:40分钟","x":125,"y":186,"rect_x1":27,"rect_y1":175,"rect_x2":197,"rect_y2":22,"score":0.9946},{"text":"任务务。","x":118,"y":242,"rect_x1":26,"rect_y1":230,"rect_x2":184,"rect_y2":24,"score":0.9868},{"text":"当前:6/10","x":115,"y":157,"rect_x1":26,"rect_y1":145,"rect_x2":178,"rect_y2":25,"score":0.9889},{"text":",有劳了!","x":109,"y":82,"rect_x1":26,"rect_y1":71,"rect_x2":166,"rect_y2":22,"score":0.9462},{"text":"任务目的:","x":70,"y":25,"rect_x1":26,"rect_y1":14,"rect_x2":89,"rect_y2":23,"score":0.9828},{"text":"任务状态:","x":69,"y":129,"rect_x1":26,"rect_y1":118,"rect_x2":86,"rect_y2":23,"score":0.9441}]

乱码长度不等,也有可能是这样

目的是不管乱码怎么变化,取出  学校3号楼     学校5号楼     还有(34,50)(113,75)这些关键文字


作者: 用户被删除    时间: 昨天 11:24
用两次取文本中间就行了
作者: 用户被删除    时间: 昨天 11:25
学校    号楼
号楼(     )
上面几个关键词
取出来后拼接就行
作者: 58110670    时间: 昨天 11:33
学校几号楼要都取出来
作者: BruceJoysky1987    时间: 昨天 11:35
.版本 2

JSON.取通用属性 (“[0].text”, )
JSON.取属性 (“[0].y”).取数据文本 ()  ' 30
JSON.取属性 (“[1]['rect_y1']”).取数据文本 ()  ' 50

作者: hxnr    时间: 昨天 11:39
这不就是json么 哪里是什么乱码

作者: 58110670    时间: 昨天 11:41
有没有大佬,把代码贴出来
作者: 蘇中二少    时间: 昨天 11:50
.局部变量 局_正则, 正则表达式类, , ,
.局部变量 局_a, 整数型
局_正则.创建 ("(学校.*?\W+)((\d+,\d+))", #常量1,假,假)
.计次循环首 (局_正则.取匹配数量 (), 局_a)
    调试输出 (局_正则.取子匹配文本 (局_a, 1),局_正则.取子匹配文本 (局_a, 2))
.计次循环尾 ()
作者: 58110670    时间: 昨天 12:01
贴出来的代码,测试都取不出来
作者: 普通玩家    时间: 昨天 12:04
你试试看,调用了精易模块
d9e7b772-d922-4bc1-93a3-dc1006a6f95b.png

demo.e

1.08 MB, 下载次数: 2


作者: 58110670    时间: 昨天 12:36
普通玩家 发表于 2026-5-20 12:04
你试试看,调用了精易模块

不懂正则,还差一点。比如没有学校的楼号,比如内容里面是找一条街道,比如文远街就这3个字,也没有楼号了,怎么优化正则
正则.创建 (“(学校\d+号楼)([((]\d+[,,]\d+[))])”, 源文本, 假, 假, 真, 真)
正则.创建 (“(文远街)([((]\d+[,,]\d+[))])”, 源文本, 假, 假, 真, 真)
如果这样的话,程序就不懂了
作者: 普通玩家    时间: 昨天 12:51
试试看,不行就把你所有类似的文本贴出来,针对性的写一下
  
子程序名返回值类型公开备 注
提取动态地名和坐标  
参数名类 型参考可空数组备 注
源文本文本型
变量名类 型静态数组备 注
正则正则表达式类 
i整数型 
地名文本型 
坐标文本型 
正则.创建 (“([\u4e00-\u9fa5a-zA-Z0-9]+)([((]\d+[,,]\d+[))])”, 源文本, 假, 假, 真, )
如果真 (正则.取匹配数量 () = 0)
调试输出 (“未提取到符合要求的信息”)
返回 ()

计次循环首 (正则.取匹配数量 (), i)
地名 = 正则.取子匹配文本 (i, 1, )
坐标 = 正则.取子匹配文本 (i, 2, )
地名 = 子文本替换 (地名, “请前往”, “”, , , )
地名 = 子文本替换 (地名, “前往”, “”, , , )
地名 = 子文本替换 (地名, “去往”, “”, , , )
地名 = 子文本替换 (地名, “寻找”, “”, , , )
地名 = 子文本替换 (地名, “目标”, “”, , , )
调试输出 (“成功提取 -> 最终地名:” + 地名 + “ | 坐标:” + 坐标)
计次循环尾 ()


i支持库列表   支持库注释   
spec特殊功能支持库


作者: 普通玩家    时间: 昨天 13:00
如果还是不行 把你所有类型的文本都发来看看
作者: 是永乐哟    时间: 昨天 13:08
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
json类_json 
i整数型 
text文本型 
正则正则表达式类 
匹配数量整数型 
j整数型 
json.解析 ( #常量1, , )
计次循环首 (json.成员数 (), i)
text = json.取通用属性 (“[”到文本 (i - 1)“].text”, )
调试输出 (“原始文本:” + text)
正则.创建 (“学校\d号楼|\(\d+,\d+\)”, text, , , , )
匹配数量 = 正则.取匹配数量 ()
计次循环首 (匹配数量, j)
调试输出 (“  提取到:” + 正则.取匹配文本 (j, ))
计次循环尾 ()
计次循环尾 ()
[13:08:33] * “原始文本:学校3号楼(34,50)非常棒,”
[13:08:33] * “  提取到:学校3号楼”
[13:08:33] * “原始文本:事情就有劳了!”


i支持库列表   支持库注释   
spec特殊功能支持库


作者: 是永乐哟    时间: 昨天 13:09
json 正则列子.e (957.92 KB, 下载次数: 1)