Oracle regexp_like - 只有某些字符、数字和一个符号

Oracle regexp_like - only certain characters, numbers and one symbol

SELECT count(*)
FROM dual
WHERE regexp_like ('ABC-123', '^[a-zA-Z0-9]*$');

我想使用 Oracle 的 regexp_like 只允许以下内容:

  1. A​​到Z,大小写。
  2. 所有数字。
  3. 符号-

如果您打算匹配连字符,a-zA-Z0-9 之间的连字符不是文字连字符,它们是定义范围的功能字符。

您需要在 [...]:

的末尾添加一个连字符
^[a-zA-Z0-9-]*$
           ^

要避免空匹配,请使用

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