regex - Teradata REGEX 或 SUBSTR 删除两个 * 和星号之间的文本?
问题描述
我正在使用一个数据集处理 teradata,该数据集具有以下格式的数据多次出现:
*6A*H.ORTHO I
*4A*IMP
*16A*T.IMPLANTS
*2A*HIMPLANTS
*9A*IMP
*5A*F.IMPLANT
*6A*DIMP
*4A*TISSUE
*5A*KIMP
*7A*IMP
*10A*D.IMP
*3A*W.LSH
*10A*IMP
*16A*IMP
*22A*T.IMPLANTS
在上面的数据集中,我试图在第二次出现星号后提取所有内容。IEDIMP、IMP、T.IMPLANTS、F.IMPLANT 等。
我尝试使用 SUBSTR 并接近使用:
SUBSTR(TRIM(FSS.Surgical_Inventory_Code),1,
INDEX(TRIM(FSS.Surgical_Inventory_Code),'*')-1)
但是,这只返回第一个 * 之后的数据。
我相信解决问题的最佳解决方案是使用 REGEX 表达式或 SUBSTR。teradata 中有一个名为 REGEXP_SUBSTR 的函数。我不确定如何创建一个 REGEX 语句来解决我的问题。
解决方案
如果您的字符串中只有 2 个星号,则可以使用 STRTOK:
strtok(<source string>,'*',2)
推荐阅读
- angular - 未通过其他组件的值输入/预填充表单输入时无法自动完成
- python - 在熊猫中从天真的本地夏令时转换为天真的本地标准时间
- node.js - axios 获取请求返回我尝试服务的所有静态 html 文件的 vue index.html 文件
- c# - 实体框架:检索不在日期范围内的行
- wpf - 从 WCF 服务运行交换命令时出错
- typescript - 如何“居中” FirstPersonControls?
- dc.js - 如何使用 Javascript eventlistener 来调用绘制 dc.js 图表/图形等的函数?
- android - Ionic 3 Android Failed Build Manifest 合并失败
- javascript - 从模块返回数据以在反应页面中呈现
- javascript - 使用 JavaScript 的保证金底部