Oracle regexp_like - 只有某些字符、数字和一个符号
Posted
技术标签:
【中文标题】Oracle regexp_like - 只有某些字符、数字和一个符号【英文标题】:Oracle regexp_like - only certain characters, numbers and one symbol 【发布时间】:2016-02-10 14:40:09 【问题描述】:SELECT count(*)
FROM dual
WHERE regexp_like ('ABC-123', '^[a-zA-Z0-9]*$');
我想使用 Oracle 的 regexp_like 只允许以下内容:
-
A 到 Z,大写和小写。
所有号码。
符号 -
【问题讨论】:
所有发布的都是程序描述。但是,我们需要您ask a question。我们无法确定您想从我们这里得到什么。请edit您的帖子包含一个我们可以回答的有效问题。提醒:请确保您知道what is on-topic here,请我们为您编写程序,建议是题外话。 @andreas777:试试WHERE regexp_like ('ABC-123', '^[a-zA-Z0-9-]*$');
【参考方案1】:
如果您打算匹配连字符,a-z
、A-Z
和 0-9
之间的字符不是文字连字符,它们是定义范围的功能字符。
您需要在[...]
的末尾添加一个连字符:
^[a-zA-Z0-9-]*$
^
为避免空匹配,请使用
^[a-zA-Z0-9-]+$
^
【讨论】:
以上是关于Oracle regexp_like - 只有某些字符、数字和一个符号的主要内容,如果未能解决你的问题,请参考以下文章
Oracle:Oracle 8i 中 REGEXP_LIKE 函数的替代方案