2016-02-19 31 views
1

考虑下面的文本字符串返回版本:查找可变长度的整数,并用正则表达式

('ABSOLUTE', 'Absolute', 'BC', 'BC', 'V7B', 'Absolute', 45), 
    ('AMEREN', 'Ameren', 'IL', 'MISO', 00000, 'AMEREN', 237), 
    ('TOLEDOED', 'Toledo Edison', 'OH', 'PJM', '00000', 'FEOhio', NULL), 

我想找到整数的所有实例,并用字符串版本替换它们。

预期结果:

('ABSOLUTE', 'Absolute', 'BC', 'BC', 'V7B', 'Absolute', '45'), 
    ('AMEREN', 'Ameren', 'IL', 'MISO', '00000', 'AMEREN', '237'), 
    ('TOLEDOED', 'Toledo Edison', 'OH', 'PJM', '00000', 'FEOhio', NULL), 

因此,在这种情况下,45被替换为 '45',00000与00000和237与 '237'

你知道该怎么做这个?

**** ****编辑上架也需要被捕获的样本情况:

最后一个不应该“00000”与“00000”取代。

搜索模式:

(\b[0-9]+\b)(?!') 

更换

+0

Ť他觉得这可能是一个XY问题。括号内表达式的来源是什么? – Sobrique

回答

2

各地的负向前查找你的号码不允许已经引用次数和捕捉他们将要在后面引用替换使用的组中使用单词边界:

'$1' 

RegEx Demo

+0

谢谢。如果有一个已经包裹在安息日的号码呢?像'00000'? – W3AVE

+0

你使用哪种正则表达式工具/语言? – anubhava

+0

我们假设我将使用您正在使用的工具,但这是来自SQL Server数据库的大型插入脚本。 (见编辑问题) – W3AVE