如果不考虑公式导出excel的情况:其实我个人觉得replace函数设置成下面这个样子比较合适
函数名:REPLACE
参数:
STEXT 待替换的文本或者公式
PTEXT 正则或配对文本
TTEXT 用于替换的文本或公式,如果是文本可以用函数内置公式用双引号引起来,避开FR的计算,看下面说明1
RC 替换条件,不传则替换全部 【仅仅是为了简化写正则的难度】,具体写法看下面的说明2
SD 匹配的方向,从后向前,还是从前向后【仅仅是方向,而不是字符反序】 ,默认从前向后
SP 是否启用正则,默认启用
返回值
替换后的文本
约定: 这里支持两个内置参数【非FR参数,仅仅是对这个函数内参数的一个标识】,在SD的方向匹配中,当第N次匹配到PTEXT的内容text时,内置参数HIDX=N CONTENT=text
说明1:
TTEXT 可以是一个纯文本 如 “张三” “李四”,也可以是一个FR的公式,由FR来解析,也可以是一个“FUNCTION(HIDX,CONTENT)”公式,FUNCTION是FR的任意合法的公式结构,只是这个公式需要用双引号先保护起来,由替换公式循环匹配的时候去为HIDX和CONTENT一次赋值后交给FR计算。
说明2:
这里是一个该函数的内置公式,返回值为true和false 规则跟说明1一样 "FUNCTION(HIDX,HCONTENT)"
下面举个例子说明一下内置公式的使用:
打个比方有这么一个场景,有一组数据编号,第奇数个编号如果连续有4个子母及以上且子母中包含Z字符则为不合法的编号,需要标注出错误的原因 “第N次错误”
那么可以这么写
REPLACE(STEXT,PTEXT,“ \“第\"+HIDX+\"处错误\"+CONTENT ”, "AND(HIDX%2==1,CONTAINS(CONTENT,\"Z\"))",SD,SP)
当然对于一般的正则替换写法就简单了就是REPLACE(STEXT,PTEXT,TTEXT);全用文本就可以了
|