REPLACE( ) 函数

用新的字符串替换指定字符串的所有实例。

语法

REPLACE(字符串原文本新文本

参数

名称 类型 描述
字符串

字符

在其中替换字符的值。
原文本

字符

要替换的字符串。该搜索区分大小写。

新文本 字符 用于替换原文本中的值的文本 。

输出

字符。

示例

基本示例

返回 "a12345efg":

REPLACE("abcdefg","bcd","12345")

返回 "Rd.":

REPLACE("Road","Road","Rd.")

返回 "ac":

REPLACE("abc","b","")

高级示例

移除指定的字符

使用 REPLACE( ) 可将指定字符串替换成空字符串 (""),从而将其从源字符串中的指定字符串。

返回 "1234 Scott":

REPLACE("1234 Scott rd.", "rd.", "")

域长度调整

如果新文本 ("ABC") 比原文本 ("X") 长,则生成的字符串的域长度被自动增加以适应第一次替换:

返回 "9ABC9",域长度被从 3 个字符增加到 5 个字符:

REPLACE("9X9", "X", "ABC")

域长度不会为后续的替换操作自动增加,并且如果域不是足够长以容纳所有新字符,则可能产生截断。

返回 "9ABC9A":

REPLACE("9X9X", "X", "ABC")

要避免截断,您可以使用 BLANKS() 函数或字面量空格增加字符串的长度。

返回 "9ABC9ABC":

REPLACE("9X9X" + BLANKS(2), "X", "ABC")
REPLACE("9X9X" + "  ", "X", "ABC")

如果生成的字符串比字符串短,则生成的字符串被用空白填充,以保持相同的域长度。

返回 "9X9  ":

REPLACE("9ABC9", "ABC", "X")

备注

工作原理

REPLACE( ) 函数用新字符串替代现有字符串的每个实例。

返回 "1234 Scott Road":

REPLACE("1234 Scott rd.", "rd.", "Road")

何时使用 REPLACE( )

使用 REPLACE( ) 可以对格式不一致的数据域(如地址域)进行规格化,或者替换格式编辑不佳的域中的无效信息。要准确执行,诸如重复项测试、联接或关联表之类的操作要求数据具有正常化或标准化的格式。

区分大小写

REPLACE( ) 函数区分大小写。如果您在原文本 中指定 "RD.",且字符串中的值为小写,则新文本值将不会被替换,因为找不到匹配项。

如果字符串有可能混合大小写,请首先使用 UPPER( ) 函数把所有字符转换为大写。

返回 "1234 SCOTT ROAD":

REPLACE(UPPER("1234 Scott rd."), "RD.", "ROAD")

防止意外的替换

在构造 REPLACE( ) 表达式时,您必须注意字符串中每个可能的原文本实例,以避免造成无意的替换。

返回 "645 RichaRoad Road",因为 "Richard" 的最后两个字母是 "rd":

REPLACE("645 Richard rd  ", "rd", "Road")

通过向原文本中的值添加一个前导空格和一个结尾空格 (“ rd{sp”),可阻止该函数替换名称中出现的 "rd" 实例,因为这些实例中无前导空格。

返回 "645 Richard Road":

REPLACE("645 Richard rd  ", " rd ", " Road")
ACL 脚本指南 14.1