使用Oracle regexp_replace替换字符后的所有出现次数

时间:2016-05-25 16:33:07

标签: sql regex oracle oracle-sqldeveloper

我想用' || 替换所有' 。但是,我只会替换'第一个单词开始(不区分大小写)。我们可能有多个BEGIN,但是一旦我第一次遇到单词begin,我想在开始之后替换所有出现的内容。

这是我的代码,无例外地取代ALL:

regexp_replace(column_name, ''',', '''||', 1, 0, 'i');

由于

1 个答案:

答案 0 :(得分:2)

您只需在列中找到第一个单词开始的位置,然后添加到calls the .Dispose() methodregexp_replace(column_name, ''',', '''||', regexp_instr(column_name, '\sbegin\s', 1, 1, 0, 'i'), 0, 'i'); 参数

所以你应该使用这个

Gary_W

编辑:根据begin的建议,您应该考虑使用关键字'\ sbegin \ s'(在上面的代码中更新)以避免找到错误的字function get_beginning_status\s等其他字词的一部分时。

P / S:如果non-breaking-space中的字符串文字有column_name

,请使用line break代替SELECT LOTS.LOTNUMBER, TRANS.ITEMNUMBER, TRANS.DESCRIPTION, TRANS.TRANSACTIONTYPE, TRANS.TRANSACTIONDATE, TRANS.WAREHOUSE, TRANS.QUANTITY FROM LOTS INNER JOIN TRANS ON LOTS.LOTNUMBER = TRANS.LOTNUMBER WHERE LOTS.CURRENTQUANTITY > 0