【发布时间】:2015-05-23 11:57:44
【问题描述】:
我想编写一个正则表达式来替换特定字符串内的子字符串,例如 Street to St 或 Tree to Tr。我是否需要编写单独的正则表达式来实现这一点?我知道在 Teradata 中可以使用 OREPLACE,但我想问是否有更熟练的方法可以做到这一点。任何帮助将不胜感激。
【问题讨论】:
我想编写一个正则表达式来替换特定字符串内的子字符串,例如 Street to St 或 Tree to Tr。我是否需要编写单独的正则表达式来实现这一点?我知道在 Teradata 中可以使用 OREPLACE,但我想问是否有更熟练的方法可以做到这一点。任何帮助将不胜感激。
【问题讨论】:
您可以使用regular expressions in Teradata。但是,当您需要在特定上下文中匹配具体模式并最终替换为输入字符串的某些部分时,它们的效率最高。
在下面的例子中,“Street”将被匹配,但只取第一个捕获组进行替换:
SELECT REGEXP_REPLACE('Sherlock lives in Baker Street.', '(Str)eet', '$1', 1, 0, 'c');
如果您有多个搜索关键字并对其进行多个替换,则最好使用 2-D ARRAY 及其维度中的搜索和替换值,然后在代码中使用它们来执行搜索和替换。
【讨论】: