正确答案:DE

一、Oracle正则表达式的相关知识点

'[^Ale|ax.r$]':

^:匹配行的开始字符

$:匹配行的结束字符

[]:方括号表示指定一个匹配列表,该列表匹配列表中显示的任何表达式。

[^]:同上面相反,非匹配列表表达工。

.:匹配任意一个字符(除了NULL)

|:替换元字符;结束第一个选项并开始下一个替换表达式

[^Ale|ax.r$]'中^表示只匹配不在集合{'A','l','e','|','a','x','.','r','$'}中的字符, 此处的'|'、'.'、'$'只是表示普通的字符,而非匹配符。字符串: [Ale|ax.r$] 匹配Alex,Alax ,Alxer ,A,l,e,a.............

不包含 A l e a x r的串,等效于[^Aleaxr],只要在串里面找到符合条件的字符(哪怕就一个)就算匹配。

先来看一下答案:

  1. gyj@MYDB> with gyj_test as (
  2. 2 select 'Alex' name from dual
  3. 3 union all
  4. 4 select 'Alax' name from dual
  5. 5 union all
  6. 6 select 'Alxer' name from dual
  7. 7 union all
  8. 8 select 'Alexender' name from dual
  9. 9 union all
  10. 10 select 'Alexendar' name from dual)
  11. 11 select * from gyj_test where regexp_like(name,'[^Ale|ax.r$]');
  12.  
  13. NAME
  14. ---------
  15. Alexender
  16. Alexendar

二、分析:

'^Ale|ax.r$'――表示匹配Ale或ax开头的字符串,.表示任一字符。

  1. gyj@MYDB> create table gyj_test1 (id int,name varchar2(20));
  2.  
  3. Table created.
  4.  
  5. gyj@MYDB> insert into gyj_test1 values(1,'Alex');
  6.  
  7. 1 row created.
  8.  
  9. gyj@MYDB> insert into gyj_test1 values(2,'Alax');
  10.  
  11. 1 row created.
  12.  
  13. gyj@MYDB> insert into gyj_test1 values(3,'Alxer');
  14.  
  15. 1 row created.
  16.  
  17. gyj@MYDB> insert into gyj_test1 values(4,'Alexender');
  18.  
  19. 1 row created.
  20.  
  21. gyj@MYDB> insert into gyj_test1 values(4,'Alexendar');
  22.  
  23. 1 row created.
  24.  
  25. gyj@MYDB> commit;
  26.  
  27. Commit complete.
  1. gyj@MYDB> select * from gyj_test1 where regexp_like(name,'^Ale|ax.r$');
  2.  
  3. ID NAME
  4. ---------- --------------------
  5. 1 Alex
  6. 4 Alexender
  7. 4 Alexendar

三、以上的SQL语句等价于:

  1. gyj@MYDB> select * from gyj_test1 where regexp_like(name,'^Ale')
  2. 2 union all
  3. 3 select * from gyj_test1 where regexp_like(name,'ax.r$');
  4.  
  5. ID NAME
  6. ---------- --------------------
  7. 1 Alex
  8. 4 Alexender
  9. 4 Alexendar

四、^出现在[]中表示否定,查询的结果集里含有不是中括号里的字母Aleaxr

  1. gyj@MYDB> select * from gyj_test1 where regexp_like(name,'[^Ale|ax.r$]');
  2.  
  3. ID NAME
  4. ---------- --------------------
  5. 4 Alexender
  6. 4 Alexendar

[每日一题] OCP1z0-047 :2013-08-22 正则表达式---[^Ale|ax.r$]'的更多相关文章

  1. CISP/CISA 每日一题 22

    CISSP 每日一题(答)What should be done to verify patcheshave been applied? Auditpatches, or use a vulnerab ...

  2. 老男孩IT教育-每日一题汇总

    老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...

  3. PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数

    PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...

  4. 【剑指Offer】简单部分每日五题 - Day 1

    今天开始更新leetcode上<剑指Offer>的题解,先从简单难度开始.预计按下列顺序更新: 简单难度:每日5题 中等难度:每日3题 困难难度:每日1题 17 - 打印从1到最大的n位数 ...

  5. 【JavaScript】【dp】Leetcode每日一题-解码方法

    [JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...

  6. 【python】Leetcode每日一题-逆波兰表达式求值

    [python]Leetcode每日一题-逆波兰表达式求值 [题目描述] 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说 ...

  7. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  8. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  9. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

随机推荐

  1. css区块定位之浮动与清除属性

    float属性将所属标记的显示空间指定为一个浮动元素,并使其周围对象按一定的方式环绕它排列. float属性的作用就象图像和表格的align属性一样,但可以用到任何元素上. clear属性的作用是禁止 ...

  2. Hibernate之dynamic-update

    问题:设置了dynamic-update, 可是事实上并没有按照期望进行了update. 案例代码如下: 1.持久化对象 package com.jdw.hibernate.entities; imp ...

  3. 50行实现简易HTTP服务器

    话说由于一直很懒,所以博客好像也没怎么更新...今天有空就写一下吧. 最近在看node.js的时候开始对http协议感兴趣了,毕竟node一开始就是为了做web服务器而产生的.于是试着想了一下大概的思 ...

  4. Entity Framework 数据部分更新之Attach &&Detach

    我们经常会遇到这样的问题:Update一个entity的部分数据时,通常需要new一个新的对象,然后事这新的对象Attach到Context中,代码如下所示: /// <summary> ...

  5. linux----定义命令别名

    1.定义命令别名的语法: alias nickName='command'#用于定义. unalias  nickName#用于撤消一个别名的定义. 如:alias cls='clear' 2.应该要 ...

  6. opensatck 在启动的时候注入额外的信息

    在配置ceph的时候建议使用metadata/cloud-init来注入额外的信息. https://raymii.org/s/tutorials/Automating_Openstack_with_ ...

  7. Hibernate 数据的批量插入、更新和删除

    4.2  Hibernate的批量处理 Hibernate完全以面向对象的方式来操作数据库,当程序里以面向对象的方式操作持久化对象时,将被自动转换为对数据库的操作.例如调用Session的delete ...

  8. Emotional Mastery——英语学习小技巧之一

    How can we control or manage our emotion ,so that we feel better and feel stronger when we're learni ...

  9. CF 293 E Close Vertices (树的分治+树状数组)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题目:给出一棵树,问有多少条路径权值和不大于w,长 ...

  10. 解决cookie无法删除的问题

    今天遇到一个cookie无法删除的问题,退出操作时cookie无法删除,必须在首页先进行退出操作,后来发现一个网友的博客,介绍了无法删除Cookie的原因,原来是我关于cookie的基础知识没搞清楚. ...