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&')参照上面几例的运行结果,我估计与空串的匹配有关!(.*)这个正则表达式匹配了若干次空串,所以就替换了多次! 从0开始学习ORACLE,请推荐书籍,谢谢 怎样将函数的输出结果输出在控制台中 获取当前编号,这种方法可行吗??? 不显示删除回复显示所有回复显示星级回复显示得分回复 ORA-04091: 表 HNTELANT.XB_UIMCARD 发生了变化, 触发器/函数不能读它 实例突然启动不了 报错:ora-01172 ora-01151 有遇到过的,请指点。急等! 遇到过好几次这样的需求,请教 初学,请教大家该怎么去学习oracle? 字段长度问题 oracle错误问题 请问:我想只取第100到300条的纪录,应该怎么做呢? 一道简单的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&')
参照上面几例的运行结果,我估计与空串的匹配有关!
(.*)这个正则表达式匹配了若干次空串,所以就替换了多次!