如何在oracle中使用regexp_replace允许在Oracle中带有重音符号?

时间:2019-04-11 13:27:31

标签: sql oracle

情况: 要接受满足以下条件的person_name:

  1. 允许使用任何字母符号
  2. 空间
  3. 短跑
  4. 使徒
  5. 重音墓

已执行一些预先计算,以将名称存储在字符串“ PERSON_NAME”中

逻辑:SUBSTR(REGEXP_REPLACE(PERSON_NAME,'[^A-Za-z .`''-]+',''),0,50)

SELECT SUBSTR(REGEXP_REPLACE('cafè','[^A-Z|a-z| |.|`|''|-]+'),0,50) 
    FROM dual;

几乎通过所有情况,重音字符除外:

例如:

预期结果:cafè[即e上方的符号不应被滤除]

实际结果:咖啡馆

1 个答案:

答案 0 :(得分:1)

您可以使用:

select SUBSTR(REGEXP_REPLACE('cafè-` t *'' {','[[:digit:]]') ,0,50) as "String"
  from dual;

String
--------------
cafè-` t *' {

因为限制列表中没有关于数字表达式的信息。