oracle中的正则表达式的奇怪问题regexp_replace SQL> Select REGEXP_REPLACE('aabbcc','(.*)', '\1,') FROM dual; REGEXP_REPLACE('AABBCC','(.*)'------------------------------aabbcc,, 为何会有两个逗号?求详细解答。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> --*表示匹配0个或者多个字符,最后空字符''也被匹配了一次SQL> --使用+就只有只匹配了一次SQL> Select REGEXP_REPLACE('aabbcc','(.+)', '\1,') FROM dual; REGEXP_REPLACE('AABBCC','(.+)'------------------------------aabbcc, SQL> --莫非楼主是想要这个效果SQL> select regexp_replace('aabbcc','(.)','\1,') reg from dual; REG------------a,a,b,b,c,c, 也许将问题描述复杂化反倒更容易找出答案REGEXP_REPLACE('aabbcc','(.*)', '\1,\1;\1&')REGEXP_REPLACE('aabbcc','(b*)', '\1,')REGEXP_REPLACE('aabbcc','(b*)', '\1,\1;\1&')参照上面几例的运行结果,我估计与空串的匹配有关!(.*)这个正则表达式匹配了若干次空串,所以就替换了多次! 分组计算数量并取每组的最小时间。 PL/SQL中如何查询检索出的数据件数 求取资料 有了解oracle9i数据库复制技术的吗,能聊聊和8i比起来有哪些增强吗? 一个多表查询的SQL语句向大家请教一下 请高手解答:在ORACLE中,联合查询表,假如有一个表不存在,ORACLE可否知道那个表不存在? 谁能优化这个sql? 高手请进 100份奉献 ORACLE如何实现毫秒? Oracle更新数据后,查询一次,数据就自动还原了 一道简单的SQL语句问题,求高手赐教 查询10年内所有周六周日是哪一天
SQL> --使用+就只有只匹配了一次
SQL> Select REGEXP_REPLACE('aabbcc','(.+)', '\1,') FROM dual;
REGEXP_REPLACE('AABBCC','(.+)'
------------------------------
aabbcc,
SQL>
--莫非楼主是想要这个效果
SQL> select regexp_replace('aabbcc','(.)','\1,') reg from dual;
REG
------------
a,a,b,b,c,c,
REGEXP_REPLACE('aabbcc','(.*)', '\1,\1;\1&')
REGEXP_REPLACE('aabbcc','(b*)', '\1,')
REGEXP_REPLACE('aabbcc','(b*)', '\1,\1;\1&')
参照上面几例的运行结果,我估计与空串的匹配有关!
(.*)这个正则表达式匹配了若干次空串,所以就替换了多次!