介绍 PostgreSQL 替换函数,这些函数在字符串中搜索子字符串并将其替换为新的子字符串。

PostgreSQL REPLACE 函数


有时,您想搜索列中的字符串并将其替换为新字符串,例如替换过时的电话号码、损坏的 URL 和拼写错误。

要搜索字符串的所有匹配项并将其替换为新字符串,请使用 REPLACE() 函数。

下面说明了 PostgreSQL REPLACE() 函数的语法:

REPLACE(source, old_text, new_text );

REPLACE() 函数接受三个参数:

  • source 是一个你想要替换的字符串。

  • old_text 是您要搜索和替换的文本。 如果 old_text 在字符串中多次出现,它的所有出现都将被替换。

  • new_text 是将替换旧文本 (old_text) 的新文本。

PostgreSQL REPLACE() 函数示例

请参阅以下使用“REPLACE()”函数的示例:

SELECTREPLACE ('ABC AA', 'A', 'Z');

在此示例中,我们将字符串中的所有字符“A”替换为字符“Z”。

以下示例将 URL 中的子字符串“tt”替换为“xx”:

SELECTREPLACE ('https://www.zhaoxinsoft.com','tt','xx');

如果要搜索和替换表列中的子字符串,请使用以下语法:

UPDATE table_name
SET column_name = REPLACE(column,old_text,new_text)
WHEREcondition

PostgreSQL REGEXP_REPLACE 函数


如果您需要更高级的匹配方式,您可以使用REGEXP_REPLACE() 函数。

REGEXP_REPLACE() 函数允许您替换与正则表达式匹配的子字符串。 下面说明了REGEX_REPLACE() 函数的语法。

REGEXP_REPLACE(source, pattern, new_text [,flags])

REGEXP_REPLACE() 函数接受四个参数:

  • source 是您将查找与 pattern 匹配的子字符串并将其替换为 new_text 的字符串。 如果未找到匹配项,则源保持不变。

  • pattern 是一个正则表达式。 它可以是任何模式,例如:电子邮件、URL、电话号码等。

  • next_text 是替换子字符串的文本。

  • flags 包含零个或多个单字母标志,用于控制 REGEX_REPLACE() 函数的行为。 例如,i 表示不区分大小写匹配或忽略大小写。 g 代表全局; 如果使用 g 标志,该函数将替换所有匹配模式的子字符串出现。 flags 参数是可选的。

PostgreSQL REGEXP_REPLACE() 函数示例


需要努力和实验才能理解REGEXP_REPLACE() 函数的工作原理。

以下是使用“REGEXP_REPLACE()”函数的示例。

SELECTregexp_replace('foo bar foobar barfoo','foo','bar');

在下面的例子中,因为我们使用了 i 标志,它会忽略大小写并用 foo 替换第一次出现的 Bar 或 bar。

SELECTregexp_replace('Bar foobar bar bars','Bar','foo','i');

在下面的例子中,我们使用了 g 标志,所有出现的 bar 都被替换为 foo。 请注意,Bar、BAR 或bAR 不会改变。

SELECTregexp_replace('Bar sheepbar bar bars barsheep','bar','foo','g');

在下面的示例中,我们同时使用了 g 和 i 标志,因此所有出现的 bar 或 Bar、BAR 等都被替换为 foo。

SELECTregexp_replace('Bar sheepbar bar bars barsheep','bar','foo','gi');

\m 表示只匹配每个单词的开头。 在任何情况下,所有以 bar 开头的单词都被 foo 替换。 以 bar 结尾的单词没有改变。

SELECTregexp_replace('Bar sheepbar bar bars barsheep','\mbar','foo','gi');

\M 表示仅在每个单词的末尾匹配。 所有以“bar”结尾的单词都被 foo 代替。 以bar开头的词不会被替换。

SELECTregexp_replace('Bar sheepbar bar bars barsheep','bar\M','foo','gi');

\m 和 \M 表示在每个单词的开头和结尾都匹配。 在任何情况下,所有以 bar 开头和结尾的单词都被替换为 foo。

SELECTregexp_replace('Bar sheepbar bar bars barsheep','\mbar\M','foo','gi');

PostgreSQL TRANSLATE 函数


除了REPLACE() 和REGEXP_REPLACE() 函数,PostgreSQL 还提供了另一个名为TRANSLATE() 的函数用于字符串替换。

给定一个set字符,TRANSLATE()函数用new_set中的字符替换source字符串中匹配set的任何字符。

TRANSLATE(source, set, new_set);

The TRANSLATE() function accepts three parameters:

  • source 是您要搜索和替换的字符串。

  • set 是一组用于匹配的字符。

  • new_set 是一组字符,用于替换与 set 匹配的字符。

请注意,如果 set 的字符比 new_set 多,PostgreSQL 会从 source 字符串中删除 set 中多余的字符。

PostgreSQL TRANSLATE 函数示例

在以下示例中,我们将所有特殊元音转换为正常元音。

SELECTTRANSLATE ('LÒ BÓ VÔ XÕ','ÒÓÔÕ','OOOO');

参考下图:

PostgreSQL 查找替换函数相关推荐

  1. [手搓人]大战[高亮编辑器/查找替换/函数跳跳蛙]--巅峰对决(1)

    战前准备 github以及它的访问权限 强大的心理支撑 一点点英文水平(至少会念ABC ) 会写测试样例 面向对象要学好(没学真的会感到是在地狱) 使用环境 python 3.8.0 pyqt 5.1 ...

  2. [手搓人]大战[高亮编辑器/查找替换/函数跳跳蛙]--巅峰对决(2)

    前置知识 抽象语法树 基本介绍 AST(Abstract Syntax Tree)抽象语法树,当你有一段源代码的时候,是用于表示该源代码的抽象语法结构的树状图.对于不同的语言,有不同的抽象语法树结构, ...

  3. Excel字符函数(5):REPLACE、SUBSTITUTE查找替换函数之区别

    文本字符串中用 new_text 替换 old_text. 如果需要在某一文本字符串中替换指定的文本,使用函数 SUBSTITUTE: 如果需要在某一文本字符串中替换特定位置处的任意文本,使用函数 R ...

  4. PostgreSQL内容替换函数replace

    1.查看替换后的内容 select replace(字段名,'替换前的内容','替换后的内容') from 表名 where 字段名 like '%替换前的内容%'; 2.执行修改 update 表名 ...

  5. 二进制查找替换常用函数

    最近编写了一些二进制查找和替换的函数,用起来非常方便,代码如下: 二进制查找函数. LPBYTE FindStrInByte(LPBYTE pbSrc,DWORD dwSrcLen,LPBYTE pb ...

  6. 通过excel自带的VLOOKUP函数实现字符串自动查找替换

    通过excel自带的VLOOKUP函数实现字符串自动查找替换. 通过此功能实现自动翻译海外字符串的功能. 步骤1. 准备工作: 准备好之前翻译过的比较完整的字符串表ref_list.txt和待翻译的表 ...

  7. wps2019 表格 substitute函数 实现查找替换 换行

    花了好久才实现了单元格内"换行的效果",怪我太笨?! 做统计时,为了将文本更清晰的展示在excel表格中,可以将在文本中定义某"分隔符",然后通过该方法进行查找 ...

  8. php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! php中兼容Perl的正则表达式处理函数 在我们说php系统自带的正则处理函数之前,我们 ...

  9. php中的替换函数,php字符串中替换函数是什么

    php字符串中替换函数有两种,分别是:1.substr_replace函数,用于把字符串的一部分替换为另一个字符串:2.str_replace函数,能够使用一个字符串替换字符串中的另一些字符. 本文操 ...

最新文章

  1. 升级 | Fastjson 1.2.68 发布,支持 GEOJSON
  2. Sina App Engine 介绍
  3. Jenkins 中如何一次构建多个项目
  4. 买卖股票的最好时机二Python解法
  5. ​Redis的各种“坑”,你知道多少?
  6. python生成的词云没有图案_Python如何生成词云的方法
  7. Bootstrap3 轮番插件的使用方法
  8. java大致了解_学习Java第一天,大致了解
  9. linux malloc 内存不足,linux中 对malloc/free分配及释放内存空间时发生的泄漏问题
  10. 怎么用便签在手机上记事?
  11. 特效字幕(ass)简易制作教程
  12. Helix QAC/QAC++ — 软件静态测试工具
  13. vue3+ts 实现防抖功能
  14. Matlab中mat2str函数使用
  15. 限流Throttling
  16. MQ 消息丢失、重复、积压问题,如何解决?
  17. java文本区背景颜色_Java如何设置PDF文档背景色详解|chu
  18. SMP、COW、PVP、MPP计算机相关
  19. 对中国Linux有杰出贡献的几位人物[转贴]
  20. html5 css3鼠标滑过效果,纯CSS3鼠标滑过按钮流光效果

热门文章

  1. 《亿级流量网站架构核心技术》总结
  2. R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值
  3. 小米10pro和红米k30pro变焦版参数对比
  4. 如何看待微软新开源的LightGBM?
  5. 以智能化为基座,城市安全发展驶入快车道
  6. margin-bottom 与 vertical-algin的差异
  7. python·数据分析
  8. python写入excel换行_使用Python使用xlsxwriter读取数据写入Excel软件不同sheet表格中...
  9. 什么是交换机、路由器、防火墙?
  10. 【代码模板】simHash算法文本查重(golang代码实现)