q409647014 发表于 2015-4-12 08:31:49

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

本帖最后由 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))
)
)

vivienluo 发表于 2015-4-12 22:18:21

楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace
具体使用方法你自己研究下,这儿我就不多说明了。。。。:)

q409647014 发表于 2015-4-12 22:37:02

vivienluo 发表于 2015-4-12 22:18
楼主想得太复杂了。试试下面两个函数:
rexCompile
rexReplace


好吧,我今天早上用这个没有成功,刚才又读了一下程序的解释,终于搞定了!谢谢!

q409647014 发表于 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)
)

q409647014 发表于 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循环和上面的语句好像有些不好用了就。

cuiergongzhu 发表于 2015-5-29 11:06:21

慢慢学习中………辛苦了~………

墨客的秋天 发表于 2015-6-9 23:05:57

学习一下,谢谢分享。

lalater963 发表于 2016-1-28 10:56:06

一整个很深奥 需要慢慢学习

wcjcn 发表于 2017-6-7 20:21:18

学习一下,正则表达式,
页: [1]
查看完整版本: 和excel中查找替换功能一样强大的skill自定义函数编写