正则表达式来修复输入字符串

时间:2013-08-03 02:07:25

标签: c# .net regex string

我的问题如下

我从每行的文件行读取,每行包含此文本:

126,1,1,1,0,1,0,-0.005,-0.005,0.01,0.01,1.,-1.,0.,0.,0.,0.,1.,0.,       5P      8
-0.005,0.01,0.,0.,1.;                                                  5P      9

在一个循环中,每当我找到“,”时,我会分割每个元素,并将其保存到数组中                 PS [k] .ParameterS = PSection [k] .Split(',');

然后我尝试将每个元素保存到一个带有标签的新文本文件中,例如:

Element1 = 126
Element2 = 1

依此类推......我的问题是我需要修复trucated / incomplete十进制元素,例如:“1。” “0”。 “-1”。用他们的正确表示“1.0”“0.0”“-1.0”

我已经搜索了很长时间,但我还没有发现是否可以使用外卡来修复这些元素。例如,替换我使用的空白空间     PS [k] .ParameterS [l] = PS [k] .ParameterS [l] .Replace(“”,“”); 在进行拆分过程之前。

到目前为止,我的输出只是用逗号“,”分隔的元素,但是小数位不完整。

2 个答案:

答案 0 :(得分:2)

在分割之前在点和逗号/结尾之间加零:

str = Regex.Replace(str, "\\.(?=;|,|$)", ".0");

这有效地在点和逗号/结尾之间插入零。

答案 1 :(得分:0)

您可以用(-{0,1}\d+\.)([^\d])替换所有$10$2,以便在进行拆分之前或之后解决该问题

view my example here您可以将该匹配替换为firstGroup +“0”+ secondGroup