Я пробую свои силы в изучении регулярных выражений в Oracle (точнее, моя первая попытка что-либо сделать с помощью RegEx).
Что символ ^
означает в начале?
В документации упоминается
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
Почему это так? Почему в первом случае совпадение происходит для «теста», а не для других?