使用10g。
我尝试编写一个正则表达式,在第一个短划线( - )之前删除所有内容。
但是,我没有预料到语法的复杂性。
我有这个:
REGEXP_SUBSTR (myVal, '[^"]+')
这会在第一次双引号后删除所有值,并留下如下数据:
10-3/4, 5-1/2, 7-5/8
我认为将双引号更改为破折号并将破折号放在破折号之后就可以了,但没有运气。
答案 0 :(得分:0)
如果您只需要这样做,那么您不需要使用REGEX
,因为您可以使用其他更简单的功能:
SELECT SUBSTRING(myVal,INSTR(myVal,'-'),LENGTH(myVal))
FROM YourTable
答案 1 :(得分:0)
如果您想使用REGEXP_SUBSTR
执行此操作,请尝试以下操作:
SELECT REGEXP_SUBSTR(myValue, '\-.*$')
FROM myTable
但是,来自Lamak的SUBSTR
答案同样有效。第三个SUBSTR
参数默认为字符串的长度,因此您可以将其关闭:
SELECT SUBSTR(myValue, INSTR(myValue, '-'))
FROM myTable