为什么.*和.+ 返回的结果不同

花开了叫我 2017-08-09 05:01:52
SQL> WITH t(a) AS (SELECT 'a' FROM dual)
2 SELECT regexp_replace(a,'(.*)',q'['\1']'),regexp_replace(a,'(.+)',q'['\1']') FROM t;

REGEXP_REPLACE(A,'(.*)',Q'['\1 REGEXP_REPLACE(A,'(.+)',Q'['\1
------------------------------ ------------------------------
'a''' 'a'



有人能讲解下么。
...全文
365 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2017-08-10
  • 打赏
  • 举报
回复
这不是 ORACLE 的 BUG,正则表达式就是这样的规则。 楼主可以百度一下
花开了叫我 2017-08-10
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
'(.*)' 表示字符串本身 加 一次 0 长度的字符串 '(.+)' 表示字符串本身
这算是ORACLE的BUG吗? 为什么要设计成这样
卖水果的net 2017-08-10
  • 打赏
  • 举报
回复
'(.*)' 表示字符串本身 加 一次 0 长度的字符串 '(.+)' 表示字符串本身

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧