Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定字符后所有字符的Oracle正则表达式_Oracle - Fatal编程技术网

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

特定字符后所有字符的Oracle正则表达式,oracle,Oracle,我需要从零件号中获取最后一个“R”之后的所有字符,如下所示: regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' ) 223A GHH R337716 到目前为止,我已经: REGEXP_SUBSTR(CUST_PART_NO,'R(.*)') 这将返回R337716,但我不想要'R',如果字符串中有多个'R',我也不确定它是否有效。那么您必须用以下表达式组替换字符串: regexp_replace( CUST_PART_NO, '(.*)(

我需要从零件号中获取最后一个“R”之后的所有字符,如下所示:

regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' )
223A GHH R337716

到目前为止,我已经:

 REGEXP_SUBSTR(CUST_PART_NO,'R(.*)')

这将返回R337716,但我不想要'R',如果字符串中有多个'R',我也不确定它是否有效。

那么您必须用以下表达式组替换字符串:

regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' )
在sqlfiddle上看到它:

我用这个表达的意思是:

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

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

然后必须用以下表达式组替换字符串:

regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' )
在sqlfiddle上看到它:

我用这个表达的意思是:

  • 获取所有内容,直到
    R
    将其作为组1表达式作为第一个
    (*)
  • 获取
    R
    使其成为第二组
    (R)
  • 获取其他所有内容并将其作为第三组
    (.*)
正则表达式上的括号定义了表达式组。

关于

ltrim(REGEXP_SUBSTR(CUST_PART_NO,'R(.*)'), 'R') 
那怎么办

ltrim(REGEXP_SUBSTR(CUST_PART_NO,'R(.*)'), 'R') 

如果存在多个“R”,这是否仍然有效?在最后一个“R”之后我需要所有的东西抱歉耽搁了。它将与最后一个
R
完全兼容
*
面具意味着直到最后一个黑麦,我用你贴的小提琴测试了它。谢谢你的帮助,真的很感激。如果有一个以上的“R”,这仍然有效吗?在最后一个“R”之后我需要所有的东西抱歉耽搁了。它将与最后一个
R
完全兼容
*
面具意味着直到最后一个黑麦,我用你贴的小提琴测试了它。谢谢你的帮助,非常感谢。