Oracle正则表达式匹配以下格式的美国电话号码:
(NNN) NNN-NNNN
或 NNN-NNN-NNNN
或 NNNNNNNNNN
我已经尝试了以下正则表达式:
with test as
(
select '(444) 123-6780' as testcol from dual
union
select '444123-6780' from dual
union
select '6741236780' from dual
union
select '(445) 123-6781' from dual
union
select '447-127-6787' from dual
union
select '447-127-3333333333' from dual
)
SELECT *
FROM test
WHERE REGEXP_LIKE(testcol, '^\(?\d{3}\)?([[:blank:]|-])?\d{3}-?\d{4}$');
结果:
(444) 123-6780 -- valid
(445) 123-6781 -- valid
444123-6780 -- not valid
447-127-6787 -- valid
6741236780 -- valid
如您所见,我收到了444123-6780
(NNNNNN-NNNN
)格式的内容,但我不需要这种格式。
有没有办法阻止上述格式匹配?