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-zA-Z0-9 之间的字符不是文字连字符,它们是定义范围的功能字符。

您需要在[...] 的末尾添加一个连字符:

^[a-zA-Z0-9-]*$
           ^

为避免空匹配,请使用

^[a-zA-Z0-9-]+$
             ^

【讨论】:

以上是关于Oracle regexp_like - 只有某些字符、数字和一个符号的主要内容,如果未能解决你的问题,请参考以下文章

Oracle:Oracle 8i 中 REGEXP_LIKE 函数的替代方案

oracle通过添加regexp_like将字符串连接到数字不起作用

oracle regexp_like介绍和例子

Oracle Regexp_like 使用 AND 子句

Oracle REGEXP_LIKE 和字边界

oracle regexp_like 与 select 模式