繁体   English   中英

Regexp_Like仅验证大写字符[AZ]和数字[0-9]

[英]Regexp_Like to Validate Uppercase Characters [A-Z] and Numbers [0-9] Only

我想在Oracle SQL中使用regexp_like查询,该查询仅验证大写字符[AZ]和数字[0-9]

SELECT * 
  FROM dual 
 WHERE REGEXP_LIKE('AAAA1111', '[A-Z, 0-9]')
  1. 项目清单

选择语句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

快速的帮助,可以发现这里和Oracle正则表达式在这里

您可以使用 :

select str as "Result String" 
  from tab
 where not regexp_like(str,'[[:lower:] ]') 
   and regexp_like(str,'[[:alnum:]]')

POSIX [^[:lower:]]模式中not regexp_like地方表示消除了包含小写字母的字符串,

regexp_likePOSIX [[:alnum:]]图案代表接受字符串不带符号

由于[[:lower:] ]末尾的空格,仅包含字母和数字甚至都不包含空格

演示版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM