使用正则表达式将双数替换为浮点数

时间:2014-04-09 05:09:29

标签: c# c++ regex double

我有一个包含常数的文本文件。 其中一些是双重类型,如0.0,其他类似浮点数0.0f。 我想将所有数字更改为以f结尾的浮点格式。 但我可以找到带正则表达式的浮点数,但我无法用浮点数类型区分。 由于这样的问题: 1.0,1.1,1.1f,1.2f,2.0 - > 1.0f,1.1f,1.1ff,1.2ff,2.0f

我想像这样更改这些样本:1.0f,1.1f,1.1f,1.2f,2.0f

我的调节表达式找到浮动数字是这样的: 模式:([ - +]?)([0-9] +)(。{1})([0-9] +)([eE]?[+ - ]?[0-9] +)? 替换:$ 1 $ 2 $ 3 $ 4f

是否有人可以区分浮点数和双数?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用否定前瞻(参见syntax

例如:

((?:[-+]?)(?:[0-9]+)(?:.{1})(?:[0-9]+)(?:[eE]?[+-]?[0-9]+)?)(?!f)

你的替换模式是

$1f

请注意,我已使用被动群组替换了您的捕获群组,并为该号码添加了一个群组

编辑:替代方案(仅使用测试字符串进行测试...)

((?:[-+]?)(?:[0-9]+)(?:.{1})(?:[0-9]+)(?:[eE]?[+-]?[0-9]+)?)([^f]?,|$)

替换为

$1f$2