特定字符后的所有字符的Oracle正则表达式

use*_*337 0 oracle

我需要在最后一个'R'之后从部件号中获取所有字符,如下所示:

223A GHH R337716

到目前为止我有:

 REGEXP_SUBSTR(CUST_PART_NO,'R(.*)')
Run Code Online (Sandbox Code Playgroud)

这返回R337716,但我不想要'R',我不确定如果字符串中有多个'R',它是否会起作用.

Jor*_*pos 5

然后你必须用这样的表达式组替换字符串:

regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' )
Run Code Online (Sandbox Code Playgroud)

请在sqlfiddle上查看:http://sqlfiddle.com/#!4/3ec77/2

我用这个表达式说的是:

  • 获取所有内容,直到R将其作为第1组表达式(.*)
  • 拿到R使其成为第二组(R)
  • 获得其他一切,并使其成为第三组 (.*)

正则表达式上的括号定义表达式组.