查找可变长度的整数,并使用正则表达式返回字符串版本

时间:2016-02-19 21:32:46

标签: regex

给出以下文字:

    ('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&00; 00000替换为&00; 00000'和237用' 237'

你知道怎么做吗?

****编辑****添加了一个也需要捕获的示例案例:

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

1 个答案:

答案 0 :(得分:2)

使用带有负前瞻的数字周围的字边界来禁止已引用的数字,并将其捕获到将替换中用于反向引用的组中:

搜索模式:

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

的更换:

'$1'

RegEx Demo