PostgreSQL 查找替换函数
介绍 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)
战前准备 github以及它的访问权限 强大的心理支撑 一点点英文水平(至少会念ABC ) 会写测试样例 面向对象要学好(没学真的会感到是在地狱) 使用环境 python 3.8.0 pyqt 5.1 ...
- [手搓人]大战[高亮编辑器/查找替换/函数跳跳蛙]--巅峰对决(2)
前置知识 抽象语法树 基本介绍 AST(Abstract Syntax Tree)抽象语法树,当你有一段源代码的时候,是用于表示该源代码的抽象语法结构的树状图.对于不同的语言,有不同的抽象语法树结构, ...
- Excel字符函数(5):REPLACE、SUBSTITUTE查找替换函数之区别
文本字符串中用 new_text 替换 old_text. 如果需要在某一文本字符串中替换指定的文本,使用函数 SUBSTITUTE: 如果需要在某一文本字符串中替换特定位置处的任意文本,使用函数 R ...
- PostgreSQL内容替换函数replace
1.查看替换后的内容 select replace(字段名,'替换前的内容','替换后的内容') from 表名 where 字段名 like '%替换前的内容%'; 2.执行修改 update 表名 ...
- 二进制查找替换常用函数
最近编写了一些二进制查找和替换的函数,用起来非常方便,代码如下: 二进制查找函数. LPBYTE FindStrInByte(LPBYTE pbSrc,DWORD dwSrcLen,LPBYTE pb ...
- 通过excel自带的VLOOKUP函数实现字符串自动查找替换
通过excel自带的VLOOKUP函数实现字符串自动查找替换. 通过此功能实现自动翻译海外字符串的功能. 步骤1. 准备工作: 准备好之前翻译过的比较完整的字符串表ref_list.txt和待翻译的表 ...
- wps2019 表格 substitute函数 实现查找替换 换行
花了好久才实现了单元格内"换行的效果",怪我太笨?! 做统计时,为了将文本更清晰的展示在excel表格中,可以将在文本中定义某"分隔符",然后通过该方法进行查找 ...
- php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得
作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! php中兼容Perl的正则表达式处理函数 在我们说php系统自带的正则处理函数之前,我们 ...
- php中的替换函数,php字符串中替换函数是什么
php字符串中替换函数有两种,分别是:1.substr_replace函数,用于把字符串的一部分替换为另一个字符串:2.str_replace函数,能够使用一个字符串替换字符串中的另一些字符. 本文操 ...
最新文章
- 升级 | Fastjson 1.2.68 发布,支持 GEOJSON
- Sina App Engine 介绍
- Jenkins 中如何一次构建多个项目
- 买卖股票的最好时机二Python解法
- ​Redis的各种“坑”,你知道多少?
- python生成的词云没有图案_Python如何生成词云的方法
- Bootstrap3 轮番插件的使用方法
- java大致了解_学习Java第一天,大致了解
- linux malloc 内存不足,linux中 对malloc/free分配及释放内存空间时发生的泄漏问题
- 怎么用便签在手机上记事?
- 特效字幕(ass)简易制作教程
- Helix QAC/QAC++ — 软件静态测试工具
- vue3+ts 实现防抖功能
- Matlab中mat2str函数使用
- 限流Throttling
- MQ 消息丢失、重复、积压问题,如何解决?
- java文本区背景颜色_Java如何设置PDF文档背景色详解|chu
- SMP、COW、PVP、MPP计算机相关
- 对中国Linux有杰出贡献的几位人物[转贴]
- html5 css3鼠标滑过效果,纯CSS3鼠标滑过按钮流光效果
热门文章
- 《亿级流量网站架构核心技术》总结
- R语言描述性统计:使用mean函数计算dataframe数据中指定数据列的均值
- 小米10pro和红米k30pro变焦版参数对比
- 如何看待微软新开源的LightGBM?
- 以智能化为基座,城市安全发展驶入快车道
- margin-bottom 与 vertical-algin的差异
- python·数据分析
- python写入excel换行_使用Python使用xlsxwriter读取数据写入Excel软件不同sheet表格中...
- 什么是交换机、路由器、防火墙?
- 【代码模板】simHash算法文本查重(golang代码实现)