Oracle 正则表达式下的 [:album:] POSIX 字符 Class 中不接受 '1A'
'1A' is not accepted in [:alnum:] POSIX Character Class under Oracle regular expresssion
为什么字母数字 class 中不考虑“1A”?
SELECT 'yes'
FROM dual
WHERE REGEXP_LIKE('1A', '[:alnum:]');
一对未转义的 [...]
创建一个 bracket expression。 POSIX 字符 classes,如 [:alpha:]
、[:alnum:]
,只能在括号表达式内声明。
[:digit:]
is a POSIX character class, used inside a bracket expression like [x-z[:digit:]]
.
在括号表达式中使用 POSIX 字符 class:
SELECT 'yes' FROM dual WHERE REGEXP_LIKE('1A', '[[:alnum:]]')
看到 online demo.
('1a', '[:alnum:]')
seems to acceptable.
请注意,当您使用 '[:alnum:]'
时,正则表达式引擎会将其解析为与括号表达式内定义的任何 characters/character 范围匹配的常规括号表达式。 IE。 [:alnum:]
正则表达式匹配 :
、a
、l
、n
、u
或 m
中的任何单个字符。由于您的输入有 a
(1a
),因此正则表达式引擎 returns 在输入中遇到 a
时有效匹配。
为什么字母数字 class 中不考虑“1A”?
SELECT 'yes'
FROM dual
WHERE REGEXP_LIKE('1A', '[:alnum:]');
一对未转义的 [...]
创建一个 bracket expression。 POSIX 字符 classes,如 [:alpha:]
、[:alnum:]
,只能在括号表达式内声明。
[:digit:]
is a POSIX character class, used inside a bracket expression like[x-z[:digit:]]
.
在括号表达式中使用 POSIX 字符 class:
SELECT 'yes' FROM dual WHERE REGEXP_LIKE('1A', '[[:alnum:]]')
看到 online demo.
('1a', '[:alnum:]')
seems to acceptable.
请注意,当您使用 '[:alnum:]'
时,正则表达式引擎会将其解析为与括号表达式内定义的任何 characters/character 范围匹配的常规括号表达式。 IE。 [:alnum:]
正则表达式匹配 :
、a
、l
、n
、u
或 m
中的任何单个字符。由于您的输入有 a
(1a
),因此正则表达式引擎 returns 在输入中遇到 a
时有效匹配。