如何编写正则表达式来替换 Teradata 中的 Street 到 St、Avenue 到 Ave 等字符串?

How to write a regex to replace string like Street to St , Avenue to Ave etc in Teradata?

我想编写一个正则表达式来替换特定字符串中的子字符串,例如 Street 到 St 或 Tree 到 Tr。我需要编写单独的正则表达式来实现吗?我知道在 Teradata OREPLACE 中可以使用,但我想问是否有更熟练的方法来做到这一点。任何帮助将不胜感激。

您可以使用 regular expressions in Teradata。但是,当您需要在 特定上下文 中匹配具体模式并最终替换为输入字符串的某些部分时,它们的效率最高。

下面的例子中,会匹配到"Street",但只会取第一个捕获组进行替换:

SELECT REGEXP_REPLACE('Sherlock lives in Baker Street.', '(Str)eet', '', 1, 0, 'c');

如果您有多个搜索关键字和它们的多个替换项,您最好在其维度中使用带有搜索和替换值的 2-D ARRAY,然后在您的代码中使用它们来执行搜索和替换。