数据库正则表达式问题

regexp_substr(t1.GRADE,'[0-9,\.]+',1,1)
谁能帮我解释一下这个式子 最好详细点
如果是 3(54335*453) 只提取括号前数据如何写
最新回答
与可爱私奔

2024-11-07 00:51:50

Oracle 正则表达式函数,
第一个是输入的字符串

第二个是正则表达式
第三个是标识从第几个字符开始正则表达式匹配。(默认为1)
第四个是标识第几个匹配组。(默认为1)
第五个是是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。

regexp_substr(t1.GRADE,'[0-9,\.]+',1,1) 就是从t1.GRADE中的第一个字符开始查找第一个匹配正规表达式的值,表达式符合:[0-9,\.]+,即允许是0123456789,.十二个字符中的任意一个或多个组合,且长度必须大于1。

3(54335*453)如何只匹配括号前的数据可以这样:

regexp_substr(t1.GRADE,'[0-9]+',1,1),这个也要看括号前有哪些字段有关,要看具体的情况,我这里认为括号前全是数字。