postgresql varchar字段regexp_replace正则替换操作

1.替换目标

1).contact字段类型 varchar。

2).去掉字段中连续的两个,每个等号后面数字不同,

effective_caller_id_name=051066824513,effective_caller_id_number=051066824513

2.查询原字段内容

select contact
from pbx_agents
where contact ~ 'effective_caller_id_name=' limit 2
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,effective_caller_id_name=051066824513,effective_caller_id_number=051066824513,cti_account=9,cti_agent_id=1102441276,cti_account_sid=5be394c3f8754bd89b9618937c687068,absolute_codec_string=\'OPUS,G729 (...)"
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,effective_caller_id_name=051066824824,effective_caller_id_number=051066824824,cti_account=9,cti_agent_id=1103211003,cti_account_sid=4f3fae0e71b74bdaa3824e6ec7771815,absolute_codec_string=\'OPUS,G729 (...)"

3.查询语句验证替换

select regexp_replace(contact, '(effective_caller_id_name=\d+,)+?','','g')
from pbx_agents
where contact ~ 'effective_caller_id_name='
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,effective_caller_id_number=051066824513,cti_account=9,cti_agent_id=1102441276,cti_account_sid=5be394c3f8754bd89b9618937c687068,absolute_codec_string=\'OPUS,G729\'}sofia/gateway/agentProxy/1102441276"
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,effective_caller_id_number=051066824824,cti_account=9,cti_agent_id=1103211003,cti_account_sid=4f3fae0e71b74bdaa3824e6ec7771815,absolute_codec_string=\'OPUS,G729\'}sofia/gateway/agentProxy/1103211003"

4.执行替换操作

update pbx_agents set contact = regexp_replace(contact, '(effective_caller_id_name=\d+,)+?','','g')
where contact ~ 'effective_caller_id_name='
Query returned successfully: 3929 rows affected, 505 msec execution time.

5.查询验证替换

select contact
from pbx_agents
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,cti_account=9,cti_agent_id=1100891004,cti_account_sid=23869df09f2f47f0ae80a7cbc45e5185,absolute_codec_string=\'OPUS,G729\'}sofia/gateway/agentProxy/1100891004"
"{sip_append_audio_sdp=a=fmtp:18 annexb=no,call_timeout=60,cti_account=9,cti_agent_id=1102081069,cti_account_sid=9f2c1574fcb5497994cb9b892aee0d1c,absolute_codec_string=\'OPUS,G729\'}sofia/gateway/agentProxy/1102081069"

补充:PostgreSql  regexp_replace 替换括号里面所有字符串

我就废话不多说了,大家还是直接看代码吧~

// PG 数据 替换数据中的 例如(1222-2) 中的所有值
select regexp_replace('在激励(1222-2)','(\(.*\))','','')

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • PostgreSQL 正则表达式 常用函数的总结

    PostgreSQL 正则表达式 常用函数的总结 对那些需要进行复杂数据处理的程序来说,正则表达式无疑是一个非常有用的工具.本文重点在于阐述 PostgreSQL 的一些常用正则表达式函数以及源码中的一些函数. 正则相关部分的目录结构 [root@localhost regex]# pwd /opt/hgdb-core/src/include/regex [root@localhost regex]# ll total 40 -rw-r--r--. 1 postgres postgres 349

  • PostgreSQL 正则表达式替换-使用变量方式

    ###不定期更新 把AAAA替换为A-A-A-A- javascript alert('AAAA'.replace(/([A]{1})/g,"$1-")); ()中的内容用变量$1 $2 $n代替 PostgreSQL select regexp_replace('AAAAAAAAAAAAAAAAAAAAAA','([A-Z]{1})','\1-','g') ()中的内容用变量\1 \2 \n代替 获取大括号中的内容 select f1[1] from regexp_matches('

  • PostgreSQL11修改wal-segsize的操作

    修改有风险,谨慎行事. PostgreSQL11以前改变wal-segsize(WAL段大小)必须在编译时通过–with-wal-segsize参数确定,编译后不可更改. #PostgreSQL11之前的版本 #数据块按8K划分(--with-blocksize,单位为K,默认为8K) #WAL块尺寸按8k划分(--with-wal-blocksize,单位为K,默认为8K) #数据文件按1G一个分解(--with-segsize,单位为G,默认为1G) #WAL段尺寸按16MB划分(--wit

  • 关于PostgreSQL错误日志与慢查询日志收集

    PostgreSQL错误日志与慢查询日志对于线上系统分析.问题预警.问题排查起到非常重要的作用,在此不做赘述. 此文档记录错误日志与慢查询日志的收集.分析与存储展示的方法. 一.总体思路 PostgreSQL日志输出可以配置多种多样的格式,其中以csvlog格式输出的日志信息最全面.但是CSV日志只能以本地文件的方式收集,不能直接写入网络,实时上传日志服务器. 日志收集: PostgreSQL服务器分布在不同的机器,我们使用rsyslog客户端-服务器的方式来收集日志到日志服务器.具体方法:在P

  • PostgreSQL 定义返回表函数的操作

    本文我们学习如何在PostgreSQL 开发返回表函数. 示例数据表 我们使用的示例数据库表为film,如下图所示: 示例1 第一个函数发挥所有满足条件film表记录,这里使用ilike操作,和like类似,但不区分大小写: CREATE OR REPLACE FUNCTION get_film (p_pattern VARCHAR) RETURNS TABLE ( film_title VARCHAR, film_release_year INT ) AS $$ BEGIN RETURN QU

  • 解决postgresql表中的字段名称包含特殊符号的问题

    在创建postgresql表的时候,由于字段中包含了"()"这种特殊字符,导致创建表的时候报错. 解决方法: 给包含特殊字符的字段加上双引号"",再进行创建表即可 例如: create table freighttransport_tab ( id serial, 日期 TEXT, "重量(公斤)" TEXT ) 此时"重量(公斤)"字段包含特殊符号(),创建表时,在sql语句中对该字段添加双引号即可. 补充:PostgreS

  • PostgreSQL 实现查询表字段信息SQL脚本

    查询格式: SELECT c.relname 表名称, A.attname AS 字段名称, col_description(A.attrelid,A.attnum) AS 注释, format_type ( A.atttypid, A.atttypmod ) AS 类型, CASE WHEN A.attnotnull='f' THEN '否' ELSE '是' END AS 是否必填, a.attnum 序号 FROM pg_class AS c, pg_attribute AS a WHER

  • postgresql varchar字段regexp_replace正则替换操作

    1.替换目标 1).contact字段类型 varchar. 2).去掉字段中连续的两个,每个等号后面数字不同, effective_caller_id_name=051066824513,effective_caller_id_number=051066824513 2.查询原字段内容 select contact from pbx_agents where contact ~ 'effective_caller_id_name=' limit 2 "{sip_append_audio_sdp

  • js使用Replace结合正则替换重复出现的字符串功能示例

    本文实例讲述了js使用Replace结合正则替换重复出现的字符串功能.分享给大家供大家参考,具体如下: 今天想把网站上关于用户搜索资料后的结果列表进行处理,如同百度搜索一样,加入我搜索框中输入"我要日日发网络",点击搜索按钮所得的结果列表中将会出现"我要日日发网络"字符串为红色. 我今天想到用js来进行处理,就是利用js内的replace函数对结果列表内的字符串进行指定字符串的替换工作,开始我是这样写的 <script type="text/Java

  • JavaScript正则替换HTML标签功能示例

    本文实例讲述了JavaScript正则替换HTML标签功能.分享给大家供大家参考,具体如下: 1.说明 获取HTML字符串(包含标签),通过正则表达式替换HTML标签,输出替换后的字符串 2.实现JavaScript代码 function deleteTag() { var regx = /<[^>]*>|<\/[^>]*>/gm; var tagStr = $("#ul_li").html(); alert("替换之前的字符串:"

  • PHP正则替换函数preg_replace和preg_replace_callback使用总结

    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: 复制代码 代码如下: <?php /**  * 模板解析类  */ class Template { public function compile($template) { // if逻辑   $template

  • php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)

    因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了): 复制代码 代码如下: <?php /*正则取图片img标记中的任意属性*/ $word = '<p height="22" align="cenetr">111 22</p> <img src="

  • php中preg_replace正则替换用法分析【一次替换多个值】

    本文实例讲述了php中preg_replace正则替换用法.分享给大家供大家参考,具体如下: 1.php 的 preg_replace 与 str_replace 都是默认 /g 的,全部替换 2.如果需要使用正则表达式 需要使用preg_replace <?php $a = "abc defa bcd ef"; $b= preg_replace("/\t|a/","",$a); echo($b); /* 输出: bc def bcd ef

  • PHP实现将标点符号正则替换为空格的方法

    本文实例讲述了PHP实现将标点符号正则替换为空格的方法.分享给大家供大家参考,具体如下: <?php $character = "!@#$%^&*中'文中'文中'文().,<>|[]'\":;}{-_+=?/abcdefgh中'文ijklmnopqrstuvwx中'文yzABCDEFGHI中文JKLMNOPQRSTUVWXYZ~`中'文文文文文"; $reg = "/[[:punct:]]/i"; $character = pre

  • JS正则替换去空格的方法

    本文实例讲述了JS正则替换去空格的方法.分享给大家供大家参考,具体如下: 在网上找了好久,发现没几个是好用的.自己备份一个省得以后再找. //去左空格; function ltrim(s){ return s.replace( /^/s*/, ""); } //去右空格; function rtrim(s){ return s.replace( //s*$/, ""); } //左右空格; function trim(s){ return rtrim(ltrim(s

  • Python正则捕获操作示例

    本文实例讲述了Python正则捕获操作.分享给大家供大家参考,具体如下: 目的: 给表达式 '10+6/5-4*2' 中每个运算符左右都加一个空格字符,变成:'10 + 6 / 5 - 4 * 2' 思路: 分组.捕获.替换 1. 替换字符中含参数 \1 (此处不能叫参数,想不到叫什么,那就不管它~~) >>> bds = '10+6/5-4*2' # 表达式 >>> m = re.sub(r'([*+-/])', ' \1 ', bds) # 注意\1左右皆有一个空格

  • Python正则替换字符串函数re.sub用法示例

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串 然后把它替换成自己想要的字符串的方法 re.sub 函数进行以正则表达式为基础的替换工作 下面是一段示例源码 #!/usr/bin/env python #encoding: utf-8 import re url = 'https://113.215.20.136:9011/113.215.6.77/c3

随机推荐