如果“ - ”仅在“ - ”之前没有“ - ”,如何用“ - ”代替?

时间:2012-03-18 17:59:12

标签: c# regex replace

我想我应该使用正则表达式,但我仍然对此大打折扣(我发现的唯一类似的问题并不完全是我的情况)所以我决定寻求帮助。这是输入和预期输出:

Input:  "c-0.68219,-0.0478 -1.01455-0.0441 0.9e-4,0.43212"
Output: "c -0.68219,-0.0478 -1.01455 -0.0441 0.9e-4,0.43212"

基本上我需要逗号或空格作为值分隔符,但我不能破坏指数索引(e‑4)。也许连续两次更换?

2 个答案:

答案 0 :(得分:2)

对我来说有点时间,但你应该可以使用这样的东西:

Regex rx = new Regex(@"([^e\s])-(\d)");
rx.Replace(input, "$1 -$2");

编辑:即使有逗号,也会在前面添加一个空格。有没有这样做的原因?

答案 1 :(得分:0)

您也可以在下面使用

ResultString = Regex.Replace(MyString, "([^0-9,e,., ,e-])", "$1 ",
        RegexOptions.IgnoreCase);