关于设计器公式中的正则处理

楼主
走在数据追梦路上的瑟瑟发抖的萌新!

分享扩散:

沙发
发表于 2016-5-20 16:25:35
感谢您的反馈,已为您提交工单,处理编号94952。

欲了解每周bug和需求等处理情况,请关注帆软每周发布的产品更新公告

注:因为帆软每天都会收到非常多的需求和bug反馈,我们不能保证会及时处理每一个用户的反馈,还请谅解。
如果您想知道自己提交的反馈是否会得到及时处理以及处理进度等,可以将上述处理编号发送给我们的帆软技术支持  QQ:800060268(不是群!!)  电话:400-850-5048(若咨询报价请转各地区分机号,详见http://www.finereport.com/company/contact

欢迎关注帆软微信公众号(ID:帆软软件)以及传说哥个人微信号(ID:FanRuanBD),了解最新资讯。
针对您提交的内容,帆软相关负责人可能会来给您回帖询问细节,还请耐心解答。
板凳
发表于 2016-5-20 16:48:17
这个自己写个函数也不是很困难,参见帮助文档自定义函数,以及 搜索java 正则表达式即可实现,我现在就是使用自定义的正则表达式截取字符,
RegTest(str,pattern,index): 返回一个字符串执行正则表达式结果
str-字符串,pattern-正则表达式,index-组序号,默认为0
地板
发表于 2016-5-22 22:29:56
本来是有正则支持的……但是不知道哪个研发把函数改出问题了~给正则加了\q 和\e。这样就是把正则强行当做一般字符串来匹配了~应该是BUG~
5楼
发表于 2016-5-23 18:08:36
使用ScritEval函数,利用JavaScript的语法进行正则表达式匹配就行了
http://market.fanruan.com/ShopServer?pg=product&pid=512
6楼
发表于 2016-5-25 10:26:42
如果不考虑公式导出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);全用文本就可以了


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

本版积分规则

返回顶部 返回列表