1

我有一个字母数字字符串。我也有一个号码。该字符串将始终以此数字开头。如何将此数字与字符串分开并获取字符串的剩余部分?

例如字符串 => 21fgggg21.lkkk 和数字 => 21

结果=> fgggg21.lkkk

或者

字符串=> 215699898.55fff 和数字=> 2

结果=> 15699898.55fff

任何提示将不胜感激。谢谢。

4

3 回答 3

3
substr(string, length(number)+1)

或者

regexp_replace(string, '^'||number)
于 2013-03-22T05:35:52.890 回答
2

你也可以使用REGEXP_REPLACE. 要从字符串的开头删除 '21':

SELECT REGEXP_REPLACE('21fgggg21.lkkk', '^21') FROM DUAL;

REGEXP_REPLA
------------
fgggg21.lkkk

要从字符串的开头删除 '2':

SELECT REGEXP_REPLACE('215699898.55fff', '^2') FROM DUAL;

REGEXP_REPLACE
--------------
15699898.55fff

通过解释...

  1. 插入符号 (^) 表示“锚定到字符串的开头”。
  2. ^21表示“匹配字符串开头的 21”。
  3. REGEXP_REPLACE有一个可选的第三个参数来替换匹配的字符串。因为您只想删除匹配的字符串,所以您可以省略参数,它将其替换为空。
于 2013-03-22T05:41:40.703 回答
0

如果您只是想选择它,您可以使用 substr 和 instr 的组合。

substr(string, instr(string, 'number') + 1, len(string))

您的结果基本上应该是在数字所在位置之后开始的字符串。

于 2013-03-22T05:28:17.047 回答