名称标准化 - 删除变音符号

Posted

技术标签:

【中文标题】名称标准化 - 删除变音符号【英文标题】:Name Standardizing - Removing Diacriticals 【发布时间】:2012-08-21 19:26:24 【问题描述】:

我继承了一个带有 item_names 表的数据库。

item_names 中的文本具有非标准文本,因此使用 getStandardizedName PL/SQL 函数创建名称的一个版本。该版本用于搜索目的(针对最终用户输入的搜索调用相同的函数)。

在这个函数中有很多东西,比如下面的代码。我的问题是,没有更好的方法来做到这一点吗?每百万个项目大约需要 90 分钟。不幸的是,目前的工作流程要求每周执行 5 到 6 次。

注意以下类型的'REPLACE'有80多种

   l_name := REPLACE(l_name, 'STE-', ' SAINT ');
   l_name := REPLACE(l_name, 'ST-', ' SAINT ');

   l_name := replace(l_name, '+','');
   l_name := replace(l_name, '-','');

   l_name := replace(l_name, '=','');
   l_name := replace(l_name, '_','');
   l_name := replace(l_name, '.','');

【问题讨论】:

找到了标点符号的部分解法如下:l_name := REGEXP_REPLACE(l_name, '([[:punct:]])', ' ') 【参考方案1】:

如果您可以识别常见的模式/分组,您应该能够将它们全部替换为几个 regexp_replace 调用。您已经在评论中识别出标点符号示例。

l_name := regexp_replace(l_name, '([[:punct:]])', ' ')

SAINT 对可以替换为:

l_name := regexp_replace(l_name, 'ST[E]0,1-', 'SAINT ')

【讨论】:

以上是关于名称标准化 - 删除变音符号的主要内容,如果未能解决你的问题,请参考以下文章

使用 BIML 导入 CSV 后变音符号丢失

带有变音符号的 xcodebuild 目标名称

访问字段名称包含变音符号时出现pyodbc错误

javascript JS - 删除变音符号fn

php 删除变音符号 - strtr

sh 文本删除变音符号.sh