Parsing 查找文本文档中的所有数字并进行操作

Parsing 查找文本文档中的所有数字并进行操作,parsing,numbers,Parsing,Numbers,我有一系列文本文档,其中包含以下类型的数据: [...] Please prepare the subject, then press SPACE We are testing peripheral vision with a black & white stimulus 45 degree stimulus of 0.728097 logMAR presented Good response 45 degree stimulus of 0.686705 logMAR presented

我有一系列文本文档,其中包含以下类型的数据:

[...]
Please prepare the subject, then press SPACE
We are testing peripheral vision with a black & white stimulus
45 degree stimulus of 0.728097 logMAR presented
Good response
45 degree stimulus of 0.686705 logMAR presented
Bad response
REVERSAL
Acuity at reversal 7 (experiment 3) was 0.686705 logMAR
135 degree stimulus of 0.732462 logMAR presented
Good response
45 degree stimulus of 0.732462 logMAR presented
[...]
换句话说,它的格式没有太多的一致性。这些数据是由我的一个例程输出的,我正在用它来完成我的博士学位。愚蠢的是,我的一些计算错误,这意味着我的数字都比应该的低0.3

我可以浏览我所有的文本文档并手动调整所有的数字,但是有很多文档,每个文档都有很多数字

<> P>可以有人建议预先存在的软件,或者合适的方法(我可以使用Matlab、C++、java或Python)来检测文本文档中包含的所有浮点数,并将它们添加到0.3个?

n、 我不一定要寻找一个解决方案,涉及我编程的任何东西,但鉴于这是一个相当定制的问题,我有一种感觉,它可能涉及编写一些东西


所有的建议都收到了:)

我不知道有哪种软件可以做到这一点,但您的问题可以通过编写Python脚本轻松解决。只需提取X文档中的所有浮点数,向其中添加0.3,然后将结果输出到新的文本文件。对所有文档执行此操作。检测浮点数的语法可以在web上找到。希望这能有所帮助。

这里有一个简单的javascript for microsoft engine,可以完成这项工作

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var fName = WScript.Arguments(0);
var f = FSO.OpenTextFile(fName, 1);
var fw = FSO.OpenTextFile(fName +".new", 2, true);

while (!f.AtEndOfStream)
    fw.WriteLine(f.ReadLine().replace(/\b\d+\.(\d+)\b/g,
        function($0, $1) {
            return (+$0+0.3).toFixed($1.length);
        }
    ));

f.Close();
fw.Close();

我假定为定点,没有前导或悬挂小数点

谢谢!我以前从未使用过Javascript,这似乎是我应该多做的事情。谢谢你介绍我,效果很好:)