文章目录

  • 第五十七章 Caché 函数大全 $REPLACE 函数
  • 大纲
    • 参数
  • 描述
    • REPLACE和REPLACE和REPLACE和TRANSLATE
  • 示例

第五十七章 Caché 函数大全 $REPLACE 函数

返回一个新字符串,该字符串由输入字符串中的子字符串替换子字符串组成。

大纲

$REPLACE(string,searchstr,replacestr,start,count,case)

参数

  • string 源字符串。它可以是数值,字符串文字,变量名称或任何有效的ObjectScript表达式。如果string是一个空字符串(“”),则$REPLACE返回一个空字符串。
  • searchstr 要在字符串中搜索的子字符串。它可以是数值,字符串文字,变量名称或任何有效的ObjectScript表达式。如果searchstr是一个空字符串(“”),则$REPLACE返回字符串。
  • replacestr 替换子字符串替换了字符串中searchstr的实例。它可以是数值,字符串文字,变量名称或任何有效的ObjectScript表达式。如果replacestr是一个空字符串(“”),则$REPLACE返回已删除出现的searchstr的字符串。
  • start 可选-字符串中开始子字符串搜索的字符计数位置。字符串字符从1开始计数。值0,负数,非数字字符串或空字符串等于1。如果省略,则假定为1。如果start> 1,则返回以该字符开头的字符串的子字符串,并执行子字符串替换(如果有)。如果start > $LENGTH(string),则$REPLACE返回空字符串(“”)。
  • count 可选-要执行的子字符串替换的数量。如果省略,则默认值为-1,这意味着执行所有可能的替换。值0,非-1的负数,非数字字符串或空字符串等价于0,这意味着不执行任何替换。如果指定了start,则count从起始位置开始子字符串替换。
  • case 可选—布尔值标志,指示字符串中searchstr的匹配是否区分大小写。 0 =区分大小写(默认)。 1 =不区分大小写。任何非零数字都等于1。任何非数字值都等于0。如果未指定start或count,则可以提供占位符逗号。

描述

$REPLACE函数返回一个新字符串,该字符串由输入字符串的逐个字符串替换组成。它在字符串中搜索searchstr子字符串。如果$REPLACE找到一个或多个匹配项,它将用replacestr替换searchstr子字符串,并返回结果字符串。 replacestr参数值可以比searchstr长或短; replacestr可能是一个空字符串。

默认情况下,$REPLACE从字符串的开头开始,并替换每个searchstr实例。可以使用可选的start参数在字符串中的指定字符计数位置开始比较。返回的字符串是字符串的子字符串,该字符串的子字符串从起始位置开始,并从该位置替换searchstr的每个实例。

可以使用可选的count参数来仅替换指定数量的匹配子字符串。

默认情况下,$REPLACE子字符串匹配区分大小写。可以使用可选的case参数来指定不区分大小写的匹配。

注意:因为$REPLACE可以更改字符串的长度,所以不应在编码的字符串值(例如ObjectScript $List%List对象属性)上使用$REPLACE

REPLACE和REPLACE和REPLACE和TRANSLATE

$REPLACE执行字符串对字符串的匹配和替换。 $TRANSLATE执行字符对字符的匹配和替换。 $REPLACE可以将一个或多个字符的单个指定子字符串替换为另一个子字符串。 $TRANSLATE可以用对应的指定新字符替换多个指定字符。默认情况下,这两个函数都会替换字符串中所有匹配的实例。

$REPLACE匹配默认情况下区分大小写,但可以不区分大小写地调用; $TRANSLATE匹配始终区分大小写。 $REPLACE可以指定匹配的起点和/或要执行的替换次数; $TRANSLATE替换源字符串中的所有匹配项。

示例

以下示例显示了使用$REPLACE的两种方法。第一个$REPLACE不会更改输入字符串的值。第二个$REPLACE通过将输入字符串值设置为等于函数的返回值来更改它:

/// d ##class(PHA.TEST.Function).REPLACE()
ClassMethod REPLACE()
{SET str="The quick brown fox"// 创建一个新字符串,不更改str值SET newstr=$REPLACE(str,"brown","red")WRITE "source string: ",str,!,"new string: ",newstr,!!// 创建一个新的字符串并将字符串替换为新的字符串值SET str=$REPLACE(str,"brown","silver")WRITE "revised string: ",str
}
DHC-APP>d ##class(PHA.TEST.Function).REPLACE()
source string: The quick brown fox
new string: The quick red foxrevised string: The quick silver fox

在下面的示例中,$REPLACE的调用匹配并替换子字符串的所有实例以及子字符串的前两个实例:

/// d ##class(PHA.TEST.Function).REPLACE1()
ClassMethod REPLACE1()
{SET str="1110/1110/1100/1110"WRITE !,"before conversion  ",strSET newall=$REPLACE(str,"111","AAA")WRITE !,"after replacement  ",newallSET newsome=$REPLACE(str,"111","AAA",1,2)WRITE !,"after replacement  ",newsomeSET newsome2=$REPLACE(str,"111","AAA",2,2)WRITE !,"after replacement  ",newsome2
}
DHC-APP>d ##class(PHA.TEST.Function).REPLACE1()before conversion  1110/1110/1100/1110
after replacement  AAA0/AAA0/1100/AAA0
after replacement  AAA0/AAA0/1100/1110

在以下示例中,$REPLACE的调用执行区分大小写而不区分大小写的匹配,并替换字符串中所有出现的情况:

/// d ##class(PHA.TEST.Function).REPLACE2()
ClassMethod REPLACE2()
{SET str="Yes/yes/Y/YES/Yes"WRITE !,"before conversion  ",strSET case=$REPLACE(str,"Yes","NO")WRITE !,"after replacement  ",caseSET nocase=$REPLACE(str,"Yes","NO",1,-1,1)WRITE !,"after replacement  ",nocase
}
DHC-APP>d ##class(PHA.TEST.Function).REPLACE2()before conversion  Yes/yes/Y/YES/Yes
after replacement  NO/yes/Y/YES/NO
after replacement  NO/NO/Y/NO/NO

下面的示例比较$REPLACE$TRANSLATE函数:

/// d ##class(PHA.TEST.Function).REPLACE3()
ClassMethod REPLACE3()
{SET str="A mom, o plom, o comal, Pomama"WRITE !,"before conversion  ",strSET s4s=$REPLACE(str,"om","an")WRITE !,"after replacement  ",s4sSET c4c=$TRANSLATE(str,"om","an")WRITE !,"after translation  ",c4c
}
DHC-APP>d ##class(PHA.TEST.Function).REPLACE3()before conversion  A mom, o plom, o comal, Pomama
after replacement  A man, o plan, o canal, Panama
after translation  A nan, a plan, a canal, Panana

在下面的示例中,$REPLACE的四参数形式仅返回从起点开始的字符串部分,并执行字符串对字符串的替换:

/// d ##class(PHA.TEST.Function).REPLACE4()
ClassMethod REPLACE4()
{SET str="A mon, a plon, a conal, Ponama"WRITE !,"before start replacement ",strSET newstr=$REPLACE(str,"on","an",8)WRITE !,"after start replacement  ",newstr
}
DHC-APP>d ##class(PHA.TEST.Function).REPLACE4()before start replacement A mon, a plon, a conal, Ponama
after start replacement  a plan, a canal, Panama

第五十七章 Caché 函数大全 $REPLACE 函数相关推荐

  1. 第五十七章 SQL函数 $FIND

    文章目录 第五十七章 SQL函数 $FIND 大纲 参数 描述 $FIND, POSITION, CHARINDEX, INSTR 示例 第五十七章 SQL函数 $FIND 字符串函数,返回字符串中子 ...

  2. 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第五十七章Linux MISC驱动实验 misc的意思是 ...

  3. 第三十七章 Caché 命令大全 ZWRITE 命令

    文章目录 第三十七章 Caché 命令大全 ZWRITE命令 重点 大纲 参数 描述 `ZWRITE`不带参数 `ZWRITE`带参数 Variables Non-Display Characters ...

  4. 【正点原子STM32连载】第五十七章 USB读卡器(Slave)实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  5. 第十七章 Caché 定义和使用类查询

    文章目录 第十七章 Caché 定义和使用类查询 类查询简介 使用类查询 定义基本类查询 示例 关于ROWSPEC 关于CONTAINID 查询类的其他参数 定义自定义类查询 定义querynameE ...

  6. Excel第24享:替换函数之SUBSTITUTE函数与REPLACE函数

    1.SUBSTITUTE函数与REPLACE函数 在文本字符串中用 new_text 替代 old_text.如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE:如果需要在某一 ...

  7. python replace函数_Python3 replace()函数使用方法

    描述 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. 语法replace()方法语法: str.replac ...

  8. sql replace函数_SQL REPLACE函数概述

    sql replace函数 In this article, I'll show you how to find and replace data within strings. I will dem ...

  9. Mysql 的uuid()函数以及replace()函数使用

    一.uuid介绍 在 MySQL 中,可以有如下几种途径实现唯一值: 自增序列 UUID() 函数 程序自定义 UUID 基于 16 进制,由 32 位小写的 16 进制数字组成,如下: aaaaaa ...

最新文章

  1. python进程数上限_python如何控制进程或者线程的个数
  2. python多态_Python面向对象教程之多态
  3. Python中_,__,__xx__的区别
  4. 服务器修改虚拟机地址,服务器修改虚拟机地址
  5. Android 显示全文折叠控件
  6. Java Object.hashCode()方法
  7. ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
  8. mysql 逻辑备份导入数据库_mysql逻辑备份(mysql dump的使用)
  9. java高级语言特性_Java语言高级特性——注解
  10. 和菜鸟一起学linux之V4L2摄像头应用流程【转】
  11. 对外汉语偏误语料库_哇,9大对外汉语必备语料库,每个都很有“性格”!!...
  12. 1988-2020年各省、分城乡基尼系数、基尼系数计算及相关经典文献、1978-2019年中国省市恩格尔系数表、泰尔指数计算模板、208个地级市和31个省、市城乡泰尔指数
  13. java pdf 转tif_JAVA中 PDF文件转成TIFF文件的2种方式
  14. 以前进行的程序安装创建了挂起的文件操作(SqlServer2000或SqlServer 2000 SP4补丁安装) .
  15. 安卓bochs模拟linux_bochs下载-bochs模拟器 安卓版v2.5.1-PC6安卓网
  16. 恢复出厂设置后itms注册失败_电信光纤故障OLT注册正常ITMS注册失败是怎么个情况...
  17. 【基金申报】研究目标、内容、方案之间的区别,一文全了解
  18. 网页微信公众平台登录电脑版
  19. 制作一个可以修改/删除/查看详情并评分的电影网页
  20. 若依框架图片上传、富文本框编辑器功能

热门文章

  1. 值得关注的5款“企业级低代码开发平台”推荐
  2. 使用sklearn训练模型出现【DataConversionWarning: A column-vector y was passed when a 1d array was expected】
  3. 小程序:浅谈小程序更新机制,发版后多久能全覆盖
  4. IT行业为何如此吃香?2019学习IT就业前景分析
  5. Liunx Mint下载方案Aria2、web面板AriaNG搭建
  6. 解决QQ登录SDK不能网页授权登录的问题
  7. 厉害了软考!让你拥有万能的北京“绿卡”居住证!
  8. 如何打包c#编写的程序
  9. 鼠标精灵对码软件_暗影精灵6游戏主机评测
  10. [QQ机器人]nonebot每日一言插件