В чем разница для использования символа CARET в REGEXP_LIKE в oracle? - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в REGEX. Итак, я попытался:

select * from ot.contacts where REGEXP_like(last_name,'^[A-C]');

Кроме того, я попробовал:

select * from ot.contacts where REGEXP_like(last_name,'[A-C]');

оба они дают мне вывод, где last_name начинается с A, b, c и no из извлеченные записи такие же. Можете ли вы сказать мне, когда я смогу увидеть разницу, используя этот символ каретки?

1 Ответ

5 голосов
/ 26 февраля 2020

В этом контексте ^ представляет начало строки.

  • '^[A-C]' проверяет наличие A, B или C в начале строки.

  • '[A-C]' проверяет наличие A, B или C в любом месте строки.

В зависимости от набора данных оба выражения могут или может не производить тот же результат. Вот пример, где набор результатов будет другим:

last_name         | ^[A-C]   | [A-C] 
----------------- | -------  | ----- 
Arthur            | match    | match
Bill              | match    | match
Jean-Christophe   | no match | match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...