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"

原文地址:http://blog.51cto.com/heyiyi/2070512

时间: 2024-11-10 23:08:42

postgresql varchar字段regexp_replace正则替换的相关文章

SQL SERVER 正则替换

use pubdbgo IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数  CREATE FUNCTION DBO.RegexReplace (  @string VARCHAR(MAX), --被替换的字符串  @pattern VARCHAR(255), --替换模板  @replacestr VARCHAR(max), --替换后的字符串  @Ignore

Fiddler AutoResponder正则替换

今天感冒,写简单些. Fiddler AutoResponder正则替换: regex:(?inx).+20150826_1_1_386.mp4/playlist.m3u8.*$ .表示任意字符 *:修饰前面的字符,0到多 +:修饰前面的字符,1到多 $:表示结尾 匹配请求:<0到多个任意字符>20150826_1_1_386.mp4/playlist.m3u8<1到多个任意字符><结尾>

PHP preg_replace() 正则替换所有符合条件的字符串

PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:

asp 正则替换函数

Function RegExpTest(patrn,str1,strng) Dim regEx',str1 ' 建立变量 'str1 = "The quick brown fox jumped over the lazy dog."Set regEx = New RegExp ' 建立正则表达式 regEx.Pattern = patrn ' 设置模式 regEx.IgnoreCase = True ' 设置是否区分大小写 'RegExpTest = regEx.test(strng)

PHP函数preg_replace() 正则替换所有符合条件的字符串

PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式, 替换成, 字符串, 最大替换次数[默认-1,无数次], 替换次数) 大部分语言的正则表达式都是差不多的,不过也有细微的差异. PHP 正则表达式 正则字符 正则解释 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“\n”匹配字符“n”.“\\n”匹

EditPlus中的正则替换 备忘

最近在做一个机票数据抓取的项目,经常需要在代码中post一堆参数. 通过Httpfox copy下 所有row到Editplus,通过正则替换: (.*?)\s+?(.*)\nnew NameValuePair("\1","\2"),\n 可以直接生成Java代码.

MySql (MariaDB)的varchar字段的存储的是字符还是字节

关于varchar字段: 在version4之前,按字节: version5之后,按字符. 现在普遍都按字符算:无论中文英文,都算一个字符 既: varchar(10) == '123456789a' == '123456789汗'

notepad++ 正则替换

比如原来的代码是 {$id['nihao']}{$id['lal']}{pigcms:$id.leere} 查找目标写 \{\$id\['(\w+)'\]\} 替换为写 \{pigcms:\$id\.\1\} 然后就变成 {pigcms:$id.nihao}{pigcms:$id.lal}{pigcms:$id.leere} 首先你要熟悉一下正则,我这个没讲,我只是说说怎么用notepad的正则替换 主要的就是\1这个玩意儿,查找目标的地方,要用小括号括起来你需要保留的字符,然后在替换为里面写\

vim 正则替换功能

最近使用vim的正则替换功能,非常强大 一个文件: 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 现在需要删除逗号前面的内容,那么在vim敲入命令: :%s/.*,//g 得到的结果是: 3 6 3 6 3 6 3 6 3 6 如果想要替换第一个逗号前面的内容该如何哪? :%s/.\{-},// 结果是: 2,3 5,6 2,3 5,6 2,3 5,6 2,3 5,6 2,3 5,6