【发布时间】:2019-04-02 16:23:03
【问题描述】:
在 Oracle 数据库中,我有一个字符串,例如 12.13 this is a test。使用 regexp_substr 我试图只提取13。那是点之后和空格之前的数字。我尝试了各种组合,(string, '\.[0-9]{1,}') 最接近,但我仍然得到.13。有什么办法只返回13?
数据还包括1.1 等项目。最多数字会是99.99。
所有可能的数字格式为:#.#、#.##、##.#、##.##
【问题讨论】:
-
感谢 RedRaven。难道所有的数字都有小数。还是只有一些?
-
@alexgibbs:请参阅编辑以了解可能的格式。所有数字都有小数。我想要小数点后的所有内容,但不是小数点。
-
@RedRaven 从纯正则表达式的角度来看,您需要一个积极的后视,但是,Oracle 似乎不支持此功能,正如所讨论的 here
-
在您需要的数字之后是否总是有一个空格,或者数字(如您的示例中的 12.13)是否位于字符串的末尾,因此 13 之后就没有空格?跨度>
标签: oracle regexp-substr