【发布时间】:2018-08-07 20:35:19
【问题描述】:
我有字符串“1_A_B_C_D_E_1_2_3_4_5”,我正在尝试提取数据“A_B_C_D_E”。我正在尝试从字符串中删除 _1_2_3_4_5 和 1_ 部分。这本质上是字符串中的数字部分。最后一个字母之后的任何特殊字符也必须删除。在此示例中,字符 E 之后的 _ 也不得出现。
我正在尝试的查询如下
SELECT
REGEXP_SUBSTR('1_A_B_C_D_E_1_2_3_4_5','[^0-9]+',1,1)
from dual
我从上述查询中得到的数据如下: -
_A_B_C_D_E_
我正在尝试找出一种方法来删除最后的下划线。还有其他方法可以解决这个问题吗?
【问题讨论】:
-
请更具体地说明您必须保留的内容以及必须从字符串中删除的内容。您必须始终保留的部分是在开头,还是也可以在中间?模式字母下划线字母下划线(等)然后与数字相同,您必须只保留字母部分吗?要不然是啥?不要让我们猜测!
-
那么,“字母”总是在前,“数字”总是在后吗?
-
您必须使用一些示例字符串来澄清您的问题,这些示例字符串具有您数据中可用的不同字符串组合以及每个字符串的预期输出。回答时很难假设事情。
标签: sql string oracle regexp-replace regexp-substr