Oracle SQL regexp_like по типам Юникод

Допустим, у меня есть шаблон в типах Unicode (или в категориях Unicode, согласно https://www.regular-expressions.info/unicode.html)

LLLLZLLLZLLLL
NNNN

Я пытаюсь написать запрос SQL, выбирая записи в столбце, который точно соответствует шаблону.

У меня есть запись "2343" в этом столбце вместе со многими другими смешанными буквенными числами или более длинными (более 4) числовыми символами Юникода.

Я хочу получить ровно "2343" (или любую запись 4-х номеров Юникода).

Пробовал несколько, например

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}{4}S]');

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}\p{N}\p{N}\p{N}S]');

Ничего не работает

2 ответа

Решение

Похоже, что это не оракул синтаксис для классов символов Unicode.

Пытаться [:digit:] для любой цифры.

смотрите здесь

Спасибо @1010! Вы подтолкнули меня в правильном направлении! Эти работы для меня:

4987  -  NNNN
SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '^[[:digit:]]{4}$');
Ivan Joe Test - LLLLZLLLZLLLL
SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '^[[:alpha:]]{4}[[:space:]][[:alpha:]]{3}[[:space:]][[:alpha:]]{4}$');
Другие вопросы по тегам