当前位置: 代码迷 >> Oracle开发 >> 正则表达式regexp_like的有关问题
  详细解决方案

正则表达式regexp_like的有关问题

热度:151   发布时间:2016-04-24 06:28:25.0
正则表达式regexp_like的问题
有一个表数据是这样的:
12 12124560
13 121260
1 1234560
2 1234560
3 1b3b560
4 abc
5 abcde
6 ADREasx
7 123 45
8 adc de
9 adc,.de
10 1B
10 abcbvbnb
11 11114560
11 11124560
用这个查询语句select * from fzq where regexp_like(value,'1[0-9]{4}60');查询处理的结果为:
    ID VALUE
1 1 1234560
2 2 1234560
3 11 11114560
4 11 11124560
为什么会查出来ID为11的那两条记录?
------解决思路----------------------
引用:

不加开始位置的符号导致的
select * from t where regexp_like(value,'^1[0-9]{4}60$');

------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

 select * from fzq where regexp_like(value,'^[abc]$'); 哪位大神给解释一下这个正则表达式的含义?

a,b,c就这三个可能性
我是想说dual是空的

regexp_like(value,'^[abc]$') 这个难道不是说开头是abc的意思么?

^[abc]$
开头是abc中的一个,结尾也是abc中的一个

那为什么查询不出数据呢? 这条 “4 abc”不是应该查出来么?
 

最重要的是只有一个字母的长度