使用sql语句,去掉字符串里面的多个括号中的字符串

比如说,源串是 adgdg[ewrerw]fdafda[2323][244]fdfd,
希望执行语句后得到的是
adgdgfdafdafdfd,即去包含[]以及内部的字符串,这个SQL该怎么写呢?

8个回答

SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][244]fdfd','([(.*?)])', '' ) FROM DUAL; 发现这样写可以实现这个目的。

执行sql语句前用其他语言的正则替换掉ubb标签就好了。。sql不太适合做这个事

如果是PLSQL函数呢?我能想到的是自定义一个PLSQL函数,但感觉这样的效率会比较低。

duduniao85
duduniao85 回复showbo: SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][][244]fdfd','\[[.*?]\]','',1,0,'i') FROM DUAL;为什么这样写得不到想要的效果呢
接近 5 年之前 回复
duduniao85
duduniao85 回复showbo: 是吗?我研究一下,多谢
接近 5 年之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 plsql有REGEXP_REPLACE 这个函数吧,支持正则替换,不需要自己写了
接近 5 年之前 回复

SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][][244]fdfd','[[.*?]]','',1,0,'i') FROM DUAL;为什么这样写得不到想要的效果呢,
求达人解决。

javazhy
暂无 去掉外层【】分别加上转义符就行了
接近 5 年之前 回复

SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][][244]fdfd','[(.+?)]','',1,0,'i') FROM DUAL;

javazhy
暂无 得在[和]前面加上转义符\
接近 5 年之前 回复

SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][244]fdfd','([(.*?)])', '' ) FROM DUAL;
这个才对的。

qq_29200069
qq_29200069 如果想要拿括号里面的字符串要怎样写,把ewrerw,2323,244拿出来以逗号隔开
接近 4 年之前 回复

为什么中间的\符号显示不出来呢?
SELECT REGEXP_REPLACE('adgdg[ewrerw]fdafda[2323][244]fdfd','([(.*?)])', '' ) FROM DUAL;


duduniao85
duduniao85 哦,多谢,我加上转义符可以了,多谢
接近 5 年之前 回复
duduniao85
duduniao85 哦,多谢,我加上转义符可以了,多谢
接近 5 年之前 回复

好像都不对啊。。。。我试了上述几个答案都不对啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐