正则表达式替换字符串

时间:2013-07-31 03:11:31

标签: regex replace non-static

我有一个相当复杂的数据文件,其中包含许多不同类型的行。对于我感兴趣的特定列,我有一个看起来像这样的模式:

12.6 \pm 0.8      

^^每个条目中小数点前后的位数可能会有所不同。

我希望我可以使用正则表达式将该列条目替换为: [12.6,-0.8,+ 0.8]

我要求帮助的是,一旦找到了我之前的条目,我应该如何更换。到目前为止我找到的所有例子都是为了当你想用其他静态字符串替换静态字符串时,但对于每一行,我必然会有不同的数字(也许是不同的数字)。到目前为止,我试图找到像“12.6 \ pm 0.8”这样的条目的正则表达式如下:

\d*\.\d*\s\\\w{2})\s\d*\.\d*

如果我能检查一下,我也很感激。目前我只是在文本编辑器中操作数据文件,但我也对Python解决方案也持开放态度。

谢谢!

1 个答案:

答案 0 :(得分:1)

你的表情很接近。有什么条件不起作用吗?

(\d*\.\d*)\s\\\w{2}\s(\d*\.\d*)

替换模式为(对于JS)

[$1, -$2, $2]

或针对emacs(根据http://www.emacswiki.org/emacs/RegularExpression

[\1, -\2, \2]