Oracle SQL-匹配电话格式

Oracle SQL-匹配电话格式,sql,regex,oracle,select,Sql,Regex,Oracle,Select,我想查找与以下模式不匹配的数据: 任意数量的分离器 2个数字 任意数量的分离器 2个数字 任意数量的分离器 2个数字 任意数量的分离器 2个数字 任意数量的分离器 2个数字 任意数量的分离器 为此,我使用此查询,但它似乎不起作用: select distinct regexp_replace(phonenumber, '[0-9]', '') from coord where REGEXP_LIKE(phonenumber, '^[ ./]{*}[0-9]{2}[ ./]{*}[0-9]

我想查找与以下模式不匹配的数据:

  • 任意数量的分离器
  • 2个数字
  • 任意数量的分离器
  • 2个数字
  • 任意数量的分离器
  • 2个数字
  • 任意数量的分离器
  • 2个数字
  • 任意数量的分离器
  • 2个数字
  • 任意数量的分离器
为此,我使用此查询,但它似乎不起作用:

select distinct regexp_replace(phonenumber, '[0-9]', '') 
from coord 
where REGEXP_LIKE(phonenumber, '^[ ./]{*}[0-9]{2}[ ./]{*}[0-9]{2}[ ./]{*}[0-9]{2}[ ./]{*}[0-9]{2}[ ./]{*}[0-9]{2}[ ./]{*}$')

我做错了什么?

假设您要搜索与您的模式匹配的记录,只需将您的
{*}
替换为
*

SELECT DISTINCT regexp_replace(phonenumber, '[0-9]', '')
  FROM coord 
 WHERE regexp_like(phonenumber,
                   '^[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*'
                   ||'[0-9]{2}[ ./]*[0-9]{2}[ ./]*$')
如果要选择与此模式不匹配的记录,请执行以下操作:

SELECT DISTINCT regexp_replace(phonenumber, '[0-9]', '')
  FROM coord 
 WHERE NOT regexp_like(phonenumber,
                       '^[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*'
                       ||'[0-9]{2}[ ./]*[0-9]{2}[ ./]*$')

假设您希望搜索与您的模式匹配的记录,只需将您的
{*}
替换为
*

SELECT DISTINCT regexp_replace(phonenumber, '[0-9]', '')
  FROM coord 
 WHERE regexp_like(phonenumber,
                   '^[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*'
                   ||'[0-9]{2}[ ./]*[0-9]{2}[ ./]*$')
如果要选择与此模式不匹配的记录,请执行以下操作:

SELECT DISTINCT regexp_replace(phonenumber, '[0-9]', '')
  FROM coord 
 WHERE NOT regexp_like(phonenumber,
                       '^[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*[0-9]{2}[ ./]*'
                       ||'[0-9]{2}[ ./]*[0-9]{2}[ ./]*$')

结果是什么
regexp\u replace(电话号码,[0-9],”)
对我来说似乎很可疑。你有空字符串列表吗?结果是什么
regexp\u replace(电话号码,[0-9],”)
对我来说似乎很可疑。你有空字符串的列表吗?