【问题标题】:how remove special character and digits from a string but ignore white spaces如何从字符串中删除特殊字符和数字但忽略空格
【发布时间】:2019-06-18 01:49:33
【问题描述】:

我试图从句子字符串中删除特殊字符和数字,但如果有多个空格,它应该忽略空格,它应该用一个替换

SQL 开发者,oracle 11g

select REGEXP_REPLACE ('Annapurna1@ Poojari675&^','(\W|\d)','') from dual;

实际上输出是AnnapurnaPoojari,但我需要Annapurna Poojari

【问题讨论】:

    标签: sql regex oracle


    【解决方案1】:

    您可以更明确地说明要保留的字符:

    select REGEXP_REPLACE('Annapurna1@ Poojari675&^', '([^a-zA-Z ])', '')
    from dual;
    

    【讨论】:

      【解决方案2】:

      您也可以使用[^[:alpha:] ]+ 模式来删除非字母字符并保留空格:

      select regexp_replace('Annapurna1@ Poojari675&^','[^[:alpha:] ]','') as "Result String"
        from dual;
      
      Result String
      -----------------
      Annapurna Poojari
      

      【讨论】:

      • 嗨,你能解释一下'+'是如何在这里工作的吗?我没有发现加号和不加号的输出有任何区别。也请告诉 *,+,?在 regexp_replace 中使用
      • hi @Annapurna + 匹配一个或多个匹配项,但在这种情况下不需要,你是对的。
      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 2021-10-16
      • 2014-08-17
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多