Regex 使用正则表达式在Oracle中设置文本格式

Regex 使用正则表达式在Oracle中设置文本格式,regex,oracle,plsql,oracle11g,full-text-search,Regex,Oracle,Plsql,Oracle11g,Full Text Search,我想使用正则表达式格式化特定列(varchar)中的数据 要求将任何前缀“SAINT”或“ST”或“STE”替换为“ST”。所有特殊字符,如“'”、“-”等。。应删除,并且应删除任何后缀“县”/“市” 例如,文本圣约翰市的格式应为圣约翰市 或者文本STE ABC-STE'XYZ市县的格式应为ST ABCSTEXYZ市县 有人能帮忙吗 谢谢请检查以下内容是否适合您。我测试了它,它给出了正确的结果 create table test_stack (id number , address varcha

我想使用正则表达式格式化特定列(varchar)中的数据

要求将任何前缀“SAINT”或“ST”或“STE”替换为“ST”。所有特殊字符,如“'”、“-”等。。应删除,并且应删除任何后缀“县”/“市”

例如,文本圣约翰市的格式应为圣约翰市 或者文本STE ABC-STE'XYZ市县的格式应为ST ABCSTEXYZ市县

有人能帮忙吗


谢谢

请检查以下内容是否适合您。我测试了它,它给出了正确的结果

create table test_stack (id number , address varchar2(4000)) ;

insert into test_stack values( 1 , 'ST. JOHN''S CITY') ;
insert into test_stack values( 2 , 'STE JOHN-ABC-/''DEF CITY COUNTY CITY') ;

select id , 
regexp_replace(regexp_replace(regexp_replace( address , '^(\S*)' , 'ST') , '(\S*)$' , '') , '([^[:blank:]a-zA-Z\d])' , ''  ) 
from test_stack

这显然与你先前的问题一致。看起来你正在慢慢地用手滚动甲骨文。这个库提供了带有模糊匹配的全文搜索:您应该明确地签出名称搜索。在这个问题的上下文中,您可能会对它的同义词功能感兴趣。你的问题是关于函数的吗?如果是这样的话,您需要在哪些方面提供帮助?如果问题是如何将多个标准转换应用于文本列,请更新以使其更清晰。我已经编辑了它。您确定要求吗?我住在一个叫大学城的地方。该市被称为“大学城之城”。名字是两个字;这里的“城市”不是后缀。删除它将导致邮局无法识别城市名称。这个结果是期望的结果吗?