正则表达式从字符串中获取十进制值

时间:2014-03-18 11:04:56

标签: mysql sql regex

我想修剪字符串中的值,然后除以某个值,但我的正则表达式返回零或一。

select (trim(total) regexp '^[0-9]*[.]{0,1}[0-9]*$')/3 as total_c
from test;

如何获得实际值而不是0或1。 例如来自A9.9我最终想要3.3。 总列的采样日期:

    A9.9
    ABC2.2
    2.3xyz
    22
    .....

1 个答案:

答案 0 :(得分:0)

在Mysql中没有直接支持正则表达式替换。 您必须使用REGEX_REPLACE()等用户定义的函数,或者使用PREG_CAPTURE()

就您的查询而言

select (trim(total) regexp '^[0-9]*[.]{0,1}[0-9]*$')/3 as total_c
from test;

正则表达式后跟regexp运算符不匹配,返回值0,因此结果为0。