特定字符后所有字符的Oracle正则表达式
我需要从零件号中获取最后一个“R”之后的所有字符,如下所示:特定字符后所有字符的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, '(.*)(
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上看到它:
我用这个表达的意思是:
- 获取所有内容,直到
将其作为组1表达式作为第一个R
(*)
- 获取
使其成为第二组R
(R)
- 获取其他所有内容并将其作为第三组
(.*)
正则表达式上的括号定义表达式组。然后必须用以下表达式组替换字符串:
regexp_replace( CUST_PART_NO, '(.*)(R)(.*)', '\3' )
在sqlfiddle上看到它:
我用这个表达的意思是:
- 获取所有内容,直到
将其作为组1表达式作为第一个R
(*)
- 获取
使其成为第二组R
(R)
- 获取其他所有内容并将其作为第三组
(.*)
ltrim(REGEXP_SUBSTR(CUST_PART_NO,'R(.*)'), 'R')
那怎么办
ltrim(REGEXP_SUBSTR(CUST_PART_NO,'R(.*)'), 'R')
如果存在多个“R”,这是否仍然有效?在最后一个“R”之后我需要所有的东西抱歉耽搁了。它将与最后一个
R
完全兼容*
面具意味着直到最后一个黑麦,我用你贴的小提琴测试了它。谢谢你的帮助,真的很感激。如果有一个以上的“R”,这仍然有效吗?在最后一个“R”之后我需要所有的东西抱歉耽搁了。它将与最后一个R
完全兼容*
面具意味着直到最后一个黑麦,我用你贴的小提琴测试了它。谢谢你的帮助,非常感谢。