我想regexp_like
在 Oracle 的 SQL 中使用只验证大写字符[AZ]和数字[0-9]的查询
SELECT *
FROM dual
WHERE REGEXP_LIKE('AAAA1111', '[A-Z, 0-9]')
我想regexp_like
在 Oracle 的 SQL 中使用只验证大写字符[AZ]和数字[0-9]的查询
SELECT *
FROM dual
WHERE REGEXP_LIKE('AAAA1111', '[A-Z, 0-9]')
选择语句 probalby 应该看起来像
SELECT 'Yes' as MATCHING
FROM dual
WHERE REGEXP_LIKE ('AAAA1111', '^[A-Z0-9]+$')
这意味着从第一个 ^ 到最后一个 $ 字母开始,每个字符都应该是大写字母或数字。重要提示:Z 和 0 之间没有逗号或空格。+
代表至少一个或多个字符。
编辑:根据巴巴罗斯的回答,另一种选择方式是可能的
SELECT 'Yes' as MATCHING
FROM DUAL
WHERE regexp_like('AAAA1111','^[[:digit:][:upper:]]+$')
编辑:添加了一个DBFiddle
可以在此处找到快速帮助,并在此处找到有关 oracle 正则表达式的帮助。
您可以使用 :
select str as "Result String"
from tab
where not regexp_like(str,'[[:lower:] ]')
and regexp_like(str,'[[:alnum:]]')
其中POSIX模式代表消除包含小写的字符串not regexp_like
, [^[:lower:]]
并且regexp_like
使用POSIX [[:alnum:]]
模式代表接受不带符号的字符串
(仅包含字母和数字甚至不包含空格,因为末尾部分的尾随空格[[:lower:] ]
)