0

假设我有一个 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]');

没有任何效果。

4

2 回答 2

0

谢谢@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}$');
于 2018-12-17T15:48:10.407 回答
0

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

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

这里

于 2018-12-17T05:49:59.190 回答