【发布时间】:2021-10-11 10:56:59
【问题描述】:
您好,我正在尝试在 oracle 中获取以下两个字符串的子字符串。如果模式匹配以 S9C 开头并且具有下一个数字
,我想要结果例如:对于以下两个输入,我需要像这样的输出
输入:
1.CABLE : THERMINAL 3X2X0.25MM FPCP PLUS UNITRONIC S9C000019651
2.Motor Protection Relay EMR-3MPO-2S9CB1-1 (was IQ1000II / MP 3000)
3.GREASE : BEM 41-132 3KG CARTRIDGE KLUBERPLEX S9C00019171 (Order by KG's required)
输出:
1.S9C000019651
2.Null
3.S9C00019171
【问题讨论】:
-
我怀疑您的问题没有详细说明它需要的所有细节。例如,您是否希望显示字符串,如果它类似于 ABS9C000019651?这确实包括 S9C000019651 作为子字符串,但在大多数情况下,业务用户不希望选择它。同样在您的示例中,后面有九位数字,您说的是七位。那么,为什么要显示所有九位数字? (我相信你是有原因的,但不是你用英文解释的。)
-
如果S9C后面跟着七位数字,然后是一个字母怎么办?喜欢 S9C0001234A2?这与您所说的模式匹配(S9C 后跟七位数字),但是您是否希望在输出中显示它? “S9C 后跟七个或更多数字”是否必须是一个完整的 单词,这意味着它必须在其前面并后跟空格、标点符号等(非 WORD 字符)?
-
@mathguy 感谢您的回复。是的,你是对的,我需要字符串 S9C 和下一个数字,无论之后有多少个数字。如果我在 S9C0001234A2 之间收到一封信,那么我需要输出到那个信。希望我现在清楚了。
-
我的第一个问题怎么样 - 如果输入中有 ABS9C0000112233,输出中需要什么?空值?整个字符串?只是S9C0000112233?还是别的什么?