Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8451|回复: 8

[原创] 和excel中查找替换功能一样强大的skill自定义函数编写

[复制链接]
发表于 2015-4-12 08:31:49 | 显示全部楼层 |阅读模式
本帖最后由 q409647014 于 2015-4-12 08:53 编辑

大家集思广益看怎么写一个和excel中一样强大的查找替换string中的一个或者几个char,附上我写的一个功能不完备的skill函数。要替换的函数只能在string出现一次。如果出现多次就会出现问题。大家一起想办法完善一下这个子函数吧。也好供大家以后编程使用。原因是使用的函数遍历string的元素,发现相同的char便会执行操作。不能区分多个在一起的char

例如 2_R2我想换成3_R2或者是2_R3我会使用
_replaceStringElement "2_R2""2_" "3_") 但是结果会是3_R3_
_replaceStringElement "2_R2""R2" "R3")  =>("R3_R3")




defun(_replaceStringElement (_originalString _originalchar _replacechar)
let((_tempString _breakedString _combinedString _finalString)

_combinedTempString=""
_tempString=strcat("#" _originalString "#")

_breakedString=parseString(_tempString _originalchar)

_combinedString=buildString(_breakedString _replacechar)

_finalString=foreach(x parseString(_combinedString "#") strcat(_combinedTempString x))
)
)
替换.png
发表于 2015-4-12 22:18:21 | 显示全部楼层
楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace
具体使用方法你自己研究下,这儿我就不多说明了。。。。
 楼主| 发表于 2015-4-12 22:37:02 | 显示全部楼层
vivienluo 发表于 2015-4-12 22:18
楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace

好吧,我今天早上用这个没有成功,刚才又读了一下程序的解释,终于搞定了!谢谢!
 楼主| 发表于 2015-4-12 22:38:49 | 显示全部楼层
vivienluo 发表于 2015-4-12 22:18
楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace


defun(_replaceStringElement (_originalString _originalchar _replacechar i)
rexCompile(_originalchar)
rexReplace(_originalString _replacechar i)
)
 楼主| 发表于 2015-4-12 23:12:09 | 显示全部楼层
vivienluo 发表于 2015-4-12 22:18
楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace

还有一个疑问,加入是1_R1,设置参数i,用以表示2 3 4等数字,如何实现将1_R1替换为2_R1,3_R1,4_R1呢?如果用i循环和上面的语句好像有些不好用了就。
发表于 2015-5-29 11:06:21 | 显示全部楼层
慢慢学习中………辛苦了~………
发表于 2015-6-9 23:05:57 | 显示全部楼层
学习一下,谢谢分享。
发表于 2016-1-28 10:56:06 | 显示全部楼层
一整个很深奥 需要慢慢学习
发表于 2017-6-7 20:21:18 | 显示全部楼层
学习一下,正则表达式,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-4-29 19:53 , Processed in 0.151648 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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