2011-01-05 49 views
0

帮助我有一个包含一个类似的子数据列:需要与REGEXP_REPLACE

'This is a string with ID=123 contained inside' 

我需要另一个固定字符串替换ID=123ID=1

我有一个工作REPLACE调用正确地交换了这些值,但这只适用于已知的原始ID号码。我可以扩展,使其工作时的位数是通过使用一些魔法SUBSTR众所周知,然而,ID号可以有数字的任意号码,所以我想正则表达式。

与正则表达式MAGIX获取整个ID=999子无论有多少位将是非常有益的帮助。

感谢

+0

你能搜索'ID ='呢?那么你不需要一个正则表达式。 – 2011-01-05 22:33:19

+0

是的,我可以搜索ID =但是,我也需要更换在与我所知道的数字位数的任意数字。 - 这是我觉得需要对正则表达式.. – Randy 2011-01-05 22:37:43

回答

0

试着搜索

ID=\d*

如果你需要保持第一位,尝试搜索

ID=(\d)\d*

012取代

+0

感谢 - 这似乎换出的第一个数字与我的新的数字。所以如果我从ID = 123开始,换成9,那么我得到ID = 923。看起来很接近,但你如何得到所有的数字? – Randy 2011-01-05 22:43:26

+0

好吧,我只是试图与ID = \ d(9) - 这似乎停在第一个非数字,给我想要的...... 9部分似乎是随意的,但是这也是办法比我在做什么,以前更好。 – Randy 2011-01-05 22:45:57

+0

大声笑 - 再一次后续行动 - *的作品很棒 - 我阅读正确的过去。谢谢。 – Randy 2011-01-05 22:48:48

0

尝试\ d +和移动分组包围整个条款:

select regexp_replace('This is a string with ID=123 contained inside', 'ID=(\d+)', 'ID=456') rep from dual; 

REP           
--------------------------------------------- 
This is a string with ID=456 contained inside