sql - 在 Oracle DB 中使用 REGEXP_LIKE 函数
问题描述
我想验证一个字符串。条件是:
- 它应该是 9 小时长。
- 第一个字符应该是字母(大写)。
- 剩余字符应介于0和9之间
- 不允许有特殊字符
我想使用REGEXP_LIKE()
. 请建议。
解决方案
您应该能够使用以下 REGEXP_LIKE 来验证您的输入:
REGEXP_LIKE(td.text_value, '^[A-Z][0-9]{8}$')
解释正则表达式:
^
- 字符串的开头[A-Z]
- 大写字母[0-9]{8}
- 正好 8 位字符$
- 字符串结束
这是验证某些用例的查询:
WITH test_data (text_value) AS
(
SELECT 'A12345678' FROM DUAL UNION ALL
SELECT 'a12345678' FROM DUAL UNION ALL
SELECT 'A1234567' FROM DUAL UNION ALL
SELECT 'A123456789' FROM DUAL UNION ALL
SELECT '$12345678' FROM DUAL
)
SELECT td.text_value,
CASE WHEN REGEXP_LIKE(td.text_value, '^[A-Z][0-9]{8}$') THEN 'Y' ELSE 'N' END AS VALID
FROM test_data td
这是 Oracle 正则表达式文档的链接(链接)
此外,这是一个运行上述查询的 DBFiddle ( Link )
推荐阅读
- html - 如何在鼠标悬停时使 div 在另一个元素上增长?
- docker - 来自守护进程的错误响应:连接到网络失败,确保您的网络选项正确并检查管理器日志:超出上下文期限
- c# - 反序列化布尔类型的对象时出错,无法将值“”解析为“布尔”类型?
- react-native - 我无法使用本机反应在 android 手机中键入文本输入,键盘在 2 秒内隐藏
- javascript - 如何在 WordPress 中为不存在的子页面显示 404 页面?
- asp.net - Asp.net core 2.2 TypeLoadException:无法加载类型“System.Data.SqlTypes.SqlFileStream”
- php - 一个一个打印的字符串数组
- python - 合并两个文件时如何摆脱此错误“b'log/.ipynb_checkpoints'不存在”?
- bash - 从字符串数组创建文件夹
- php - 带有空格和土耳其字符的 PHP preg_split 字符串