如何在 Oracle 中将电话号码(或任何号码)正则表达式精确到正确的长度,后跟非数字,然后可能再次数字?
例如
SELECT 1 FROM DUAL WHERE
REGEXP_LIKE('555-5555x123', '^[0-9]{3,4}[^[:digit:]][0-9]{4}.*$')
如果数字 555-5555 可以,555-5555x123 可以,但 555-5555123 不行。
可能发生的情况是手指粗的人在输入电话号码时添加了额外的数字而出错(请不要说应该限制输入格式,这不是我的数据),这应该被标记为问题。这个例子更像是 555-55545x123。
Oracle REGEXP_LIKE 值结果的测试用例 555-5555 ok 555-5555x123 ok 555-55551x123 失败 555-55551 失败 555-5555555 失败