开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 342|回复: 6
收起左侧

[已解决] 易语言“快速字节集对象”如何全词匹配+替换?

 关闭 [复制链接]
结帖率:60% (3/5)
发表于 2025-11-20 03:58:33 | 显示全部楼层 |阅读模式   内蒙古自治区乌兰察布市
50精币
牛头
愤怒的牛头
野蛮的牛头
清炖牛头
红烧牛头
我是一个小小牛头

上面是示例文本,比如我想替换“牛头”为“狗头”。

直接替换会吧上面所有包含牛头的内容全部替换为狗头。

但我仅仅想只替换我给出的“牛头”二字,其他包含牛头的句子不做替换,也就是全词匹配牛头并且替换为狗头,该如何实现?

请大佬帮忙写一份用“快速字节集对象”实现的源码谢谢!

最佳答案

查看完整内容

[e=4].版本 2 .支持库 commobj .支持库 spec .程序集 窗口程序集_启动窗口 .程序集变量 KM, 快速文本对象 .子程序 __启动窗口_创建完毕 .局部变量 S, 文本型, , "0" .局部变量 i, 整数型 .局部变量 ss, 文本型 S = 分割文本 (#常量2, #换行符, ) .计次循环首 (取数组成员数 (S), i) .如果真 (S = “牛头”) ss = 子文本替换 (#常量2, S , “狗头”, 1, 1, 真) 调试输出 (ss + S ) .如果真结束 . ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值

结帖率:100% (1/1)

签到天数: 2 天

发表于 2025-11-20 03:58:34 | 显示全部楼层   江西省南昌市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
KM快速文本对象  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
S文本型0
i整数型 
ss文本型 
S = 分割文本 ( #常量2, #换行符, )
计次循环首 (取数组成员数 (S), i)
如果真 (S [i]“牛头”)
ss = 子文本替换 ( #常量2, S [i], “狗头”, 1, 1, )
调试输出 (ss + S [i])

计次循环尾 ()
KM.添加 ( #常量2 )
S = KM.分割文本 ( #换行符, )
计次循环首 (取数组成员数 (S), i)
如果真 (S [i]“牛头”)
KM.替换文本 (1, 4, “狗头”)
调试输出 (KM.取文本 (, KM.取长度 ()))

计次循环尾 ()


i支持库列表   支持库注释   
commobj通用对象支持库
spec特殊功能支持库


建议不要用快速字节集对象去写,用快速文本对象就好, 两种写法

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:0% (0/1)

签到天数: 2 天

发表于 2025-11-20 04:14:41 | 显示全部楼层   四川省遂宁市
用正则啊使用\b单词边界来确保全词匹配
回复

使用道具 举报

结帖率:97% (29/30)
发表于 2025-11-20 06:23:45 | 显示全部楼层   贵州省遵义市
添加数据到"快速字节集对象"之前,在数据前面添加一个换行符、接着在数据尾部添加一个换行符。
这样就会造成每一条数据前面和后面都是存在换行符分割了(最终格式变成:换行符+你的全部数据+换行符)。

全词匹配搜索格式就是:换行符+你要搜索的全词文本+换行符。替换格式:换行符+用作替换的文本+换行符。

回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2025-11-20 09:29:51 | 显示全部楼层   江西省南昌市
  
窗口程序集名保 留  保 留备 注
(未填写程序集名)   
变量名类 型数组备 注
变量名类 型数组备 注
KM快速字节集对象  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
S字节集 
i整数型 
ss字节集 
KM.添加 ( #常量2 )
S = KM.取字节集 (, )
ss = 字节集_取左边 (S, 4)
如果真 (KM.寻找字节集 (ss, ) ≠ -1)
KM.替换字节集 (1, 4, 到字节集 (“狗头”))
S = KM.取字节集 (, )
调试输出 (到文本 (S))

* “狗头
愤怒的牛头
野蛮的牛头
清炖牛头
红烧牛头
我是一个小小牛头”

被调试易程序运行完毕


i支持库列表   支持库注释   
commobj通用对象支持库
spec特殊功能支持库


字节集写法要麻烦点,要对字节有一定的掌控熟练度。

回复

使用道具 举报

结帖率:100% (53/53)

签到天数: 2 天

发表于 2025-11-20 10:23:43 | 显示全部楼层   福建省宁德市
  
变量名类 型静态数组备 注
对象快速字节集对象 
对象.置字节集 (到字节集 (“牛头”#换行符“愤怒的牛头”#换行符“野蛮的牛头”#换行符“清炖牛头”#换行符“红烧牛头”#换行符“我是一个小小牛头”))
如果真 (对象.取字节集 (1, 2){ 13, 10 })  ' 开头不是换行符则插入
对象.插入 (1, { 13, 10 })
如果真 (对象.取字节集 (-2, 2){ 13, 10 })  ' 末尾不是换行符则添加
对象.添加 ({ 13, 10 })

对象.替换子字节集 (到字节集 ( #换行符“牛头”#换行符 ), 到字节集 ( #换行符“狗头”#换行符 ), , )
调试输出 (到文本 (对象.取字节集 (, )))


i支持库列表   支持库注释   
commobj通用对象支持库
spec特殊功能支持库
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2025-11-20 16:49:45 | 显示全部楼层   江西省南昌市
  
KM.置字节集 (到字节集 ( #常量2 ))
如果真 (KM.取字节集 (1, 4)到字节集 (“牛头”))
KM.替换字节集 (1, 4, 到字节集 (“狗头”))

调试输出 (到文本 (KM.取字节集 (, )))


i支持库列表   支持库注释   
commobj通用对象支持库
spec特殊功能支持库


还一个更简单的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表