我想在Oracle SQL中使用regexp_like
进行查询,该查询仅验证大写字符 [A-Z] 和数字 [0-9]
SELECT *
FROM dual
WHERE REGEXP_LIKE('AAAA1111', '[A-Z, 0-9]')
答案 0 :(得分:2)
select语句probalby应该看起来像
SELECT 'Yes' as MATCHING
FROM dual
WHERE REGEXP_LIKE ('AAAA1111', '^[A-Z0-9]+$')
这意味着从第一个^到最后一个$字母,每个字符都应为大写字母或数字。重要提示:Z和0之间没有逗号或空格。+
代表至少一个或多个字符。
编辑:基于Barbaros的答案,另一种选择方式是可能的
SELECT 'Yes' as MATCHING
FROM DUAL
WHERE regexp_like('AAAA1111','^[[:digit:][:upper:]]+$')
编辑:添加了DBFiddle
答案 1 :(得分:0)
您可以使用:
select str as "Result String"
from tab
where not regexp_like(str,'[[:lower:] ]')
and regexp_like(str,'[[:alnum:]]')
其中带有{em> POSIX not regexp_like
模式的[^[:lower:]]
表示消除字符串
包含小写字母
regexp_like
模式的和[[:alnum:]]
代表接受字符串
没有符号
(仅包含字母和数字甚至不包含空格,因为[[:lower:] ]
末尾的空格)