正则表达式疑问

dws2004 2011-11-21 03:00:28
偶然看到如下的表达式例子,很是不解。求大神指点
SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\1', 1, 1, 'i')
FROM dual;

--返回
Africaa
SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\2', 1, 1, 'i')
FROM dual;

--返回
Republicc
求大神解释下,为什么是这个结果?
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dws2004 2011-11-22
  • 打赏
  • 举报
回复
--1l
多谢1l 刚看了点资料,貌似理解了。
xiaobn_cn 2011-11-21
  • 打赏
  • 举报
回复
1楼正解
youshang444 2011-11-21
  • 打赏
  • 举报
回复
SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\1', 1, 1, 'i') FROM dual; 

这个是匹配表达式第一个字母和最后一个字母相同的单词,不分大小写!
SELECT regexp_substr('Republicc Of Africaa', '([a-z])([a-z])+\2', 1, 1,'i') FROM dual;  

这个是匹配最后两个字母相同的单词,不分大小写.
\1,\2是指前面第一,二个的意思。用()包围起来的表示一个表达式!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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