【发布时间】:2016-02-11 16:48:13
【问题描述】:
select 'Owens 1245 Coning COM CO LTD INC CORP INC', REGEXP_REPLACE(
UPPER(TRIM(REGEXP_REPLACE(TRIM(REGEXP_REPLACE(regexp_replace('Owens 1245 Coning COM CO LTD', '(*[[:punct:]])', ' '),'(\s[0-9]+\s)|(^[0-9]+\s)|(\s[0-9]+$)',' ')),'( ){2,}', ' '))),
'\\b'||'CO|LTD|INC|CORP'||'\\W'
,'') CLEARTEXT
from dual;
如果我运行上述查询,它会删除除“CO”之外的所有停用词并给出输出:OWENS CONING COM CO
但是我需要输出类似于:OWENS CONING COM
【问题讨论】:
-
您可能需要添加另外几个具有预期输出的示例来阐明要求。什么是停用词?
-
您的选择中有太多替换,这意味着规则数量相同或更多。因此,请添加您的替换语句的规则,以便我们提供帮助!
-
抱歉,我的要求不明确
-
抱歉,我的要求不明确。规则是:- 1)用“空格”替换所有标点符号(特殊字符)。 2) 删除所有数字词(仅数字词)。 3) 从名称中删除所有停用词,停用词列表 (CO|LTD|INC|CORP) 是用户定义的,来自与 (Pipe |) 连接的表。
标签: sql oracle regexp-replace