Teradata中的正则表达式

时间:2018-09-28 11:40:42

标签: teradata

我需要使用terdata中的正则表达式从一列中搜索一些模式。 下面提到一个示例:

brand

在上面的表达式中,我从“ 1-2-3”之类的模式中提取“ 1-3”。现在的模式可以是:1-2-3-4-5或1-2,3或1&2-3或1-2,3&4。 我有什么方法可以概括正则表达式中的搜索模式,例如[-,&] *只会按顺序搜索此字符的出现,但是这些字符可以按任何顺序出现在数据中。 下面提到的几个示例都不需要使用表达式中的单个模式搜索来获取所有所需的结果集。

expiry

1 个答案:

答案 0 :(得分:0)

RegExp_Substr(col, '(\d+)',1, 1, 'c') || '-' ||
RegExp_Substr(col, '(\d+)(?!.*\d)',1, 1, 'c')

(\d+)  = first number
(\d+)(?!.*\d) = last number (a number not followed by another number)

也不需要这些可选参数,因为它始终使用默认值:

RegExp_Substr(col, '(\d+)') || '-' ||
RegExp_Substr(col, '(\d+)(?!.*\d)')