【问题标题】:TERADATA REGEXP_SUBSTR Get string between two valuesTERADATA REGEXP_SUBSTR 获取两个值之间的字符串
【发布时间】:2023-02-10 23:21:33
【问题描述】:

我是 teradata 的新手,但我试图了解如何使用 REGEXP_SUBSTR

例如,我有以下单元格值 = ABCD^1234567890^1

我如何提取1234567890

我试图做的是以下内容:

REGEXP_SUBSTR(x, '(?<=^).*?(?=^)')

但这似乎没有用。

谁能帮忙?

【问题讨论】:

  • 应该是REGEXP_SUBSTR(x, '\^([^^]*)\^', 1) 或类似的。如果单个反斜杠不起作用,请将其加倍。

标签: mysql sql sql-server regex teradata


【解决方案1】:

可能(或可能不会)使用 REGEXP_SUBSTR() 来处理此问题,但您需要使用捕获组。这里的另一种选择是进行正则表达式替换:

SELECT x, REGEXP_REPLACE(x, '^.*?^|^.*$', '') AS output
FROM yourTable;

此处使用的正则表达式匹配:

  • ^.*?^从头到尾的一切第一的^
  • |
  • ^.*$从第二个^到最后的一切

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2020-04-19
    • 2012-02-11
    • 2013-11-25
    • 2012-12-28
    相关资源
    最近更新 更多