在 10g 上工作。
我试图编写一个正则表达式来删除第一个破折号(-)之前的所有内容。
但是,我没有预料到语法的复杂性。
我有这个:
REGEXP_SUBSTR (myVal, '[^"]+')
这将删除第一个双引号后的所有值,给我留下如下数据:
10-3/4, 5-1/2, 7-5/8
我认为将双引号更改为破折号并将克拉放在破折号之后可以做到这一点,但没有运气。
如果这就是您需要做的所有事情,那么您不需要使用REGEX
,因为您可以使用其他更简单的功能来完成它:
SELECT SUBSTRING(myVal,INSTR(myVal,'-'),LENGTH(myVal))
FROM YourTable
如果你想这样做REGEXP_SUBSTR
,试试这个:
SELECT REGEXP_SUBSTR(myValue, '\-.*$')
FROM myTable
但SUBSTR
拉马克的回答同样有效。第三个SUBSTR
参数默认为字符串的长度,因此您可以将其关闭:
SELECT SUBSTR(myValue, INSTR(myValue, '-'))
FROM myTable