我正在努力學習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