我正在努力学习Oracle中的正则表达式(相当于我第一次尝试使用RegEx进行任何操作)。关于Oracle中正则表达式的查询
^
是什么意思在开头? 说明文档中提到
Use the caret and dollar sign to define patterns that match the start or end of a string.
^ defines that start of a string or column 1 of the string.
因此,通过使用'^[*est]'
为图案,我的理解是,match anything which has -est as its ending
。
然而,当我尝试过了,
SQL> select 1 from dual where regexp_like('test','^[*est]');
1
----------
1
SQL> select 1 from dual where regexp_like('best','^[*est]');
no rows selected
SQL> select 1 from dual where regexp_like('fest','^[*est]');
no rows selected
卸下^
然而,我们得到
SQL> select 1 from dual where regexp_like('fest','[*est]');
1
----------
1
SQL> select 1 from dual where regexp_like('best','[*est]');
1
----------
1
SQL> select 1 from dual where regexp_like('test','^[*est]');
1
----------
1
为什么会这样呢?为什么在第一种情况下,匹配发生在“测试”而不是其他人?
很好的参考:http://www.regular-expressions.info/ – 2010-01-11 16:42:25
@OMG小马 - 感谢您的链接。 – Sathya 2010-01-12 12:26:50