我有一个字母数字字符串。我也有一个号码。该字符串将始终以此数字开头。如何将此数字与字符串分开并获取字符串的剩余部分?
例如字符串 => 21fgggg21.lkkk 和数字 => 21
结果=> fgggg21.lkkk
或者
字符串=> 215699898.55fff 和数字=> 2
结果=> 15699898.55fff
任何提示将不胜感激。谢谢。
substr(string, length(number)+1)
或者
regexp_replace(string, '^'||number)
你也可以使用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
通过解释...
^21
表示“匹配字符串开头的 21”。REGEXP_REPLACE
有一个可选的第三个参数来替换匹配的字符串。因为您只想删除匹配的字符串,所以您可以省略参数,它将其替换为空。如果您只是想选择它,您可以使用 substr 和 instr 的组合。
substr(string, instr(string, 'number') + 1, len(string))
您的结果基本上应该是在数字所在位置之后开始的字符串。