Oracle SQL regexp_like 按 unicode 类型

Oracle SQL regexp_like by unicode types

假设我有一个 unicode 类型的模式(或 Unicode 类别,根据 https://www.regular-expressions.info/unicode.html

LLLLZLLLZLLLL
NNNN

我正在尝试编写 sql 查询,选择与模式完全对应的列中的条目。

我在该列中确实有条目“2343”,以及许多其他混合字母数字或更长(超过 4 个)数字 unicode 字符。

我想准确地检索“2343”(或任何 4 个 unicode 数字条目)。

试了几个,比如

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]');

没有任何效果。

这似乎不是 unicode 字符的 oracle 语法 类。

尝试 [:digit:] 任何数字。

here

谢谢@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}$');