分页: 1 / 1

VIM请教:文本中有一些科学计数法的数字,想对某些数字同时乘以"-2",肿么办?

发表于 : 2011-07-08 22:41
xhwubai
如果是所有数字全部乘以-2, lh-n 兄提供了很好很强大的代码:
:%s/\<-\=\d\.\d\+E-\d*\>/\=-2*str2float(submatch(0))/g

如果是"L="后面的第一个数字乘以-2,该肿么办???

Exam:
STDEV 2.94873E-13 L=1.82393E-13 1.96625E-13 2.8074E-13 2.79168E-13 2.95763E-13 2.16372E-13 L=1.77095E-13 1.90607E-13 4.07321E-13 2.52867E-13 3.97069E-13 2.4031E-13 L=7.21644E-14 1.44322E-13 3.42594E-13 4.42298E-13 2.87842E-13 2.58782E-13 L=2.75495E-13
A Median JLEAB_P50N1SA_6K -3.55E-12 -4.114E-12 -3.541E-12 -3.713E-12 -4.023E-12 -3.574E-12 -3.936E-12 L=-3.733E-12 -3.614E-12 -4.288E-12 -3.741E-12 -3.994E-12 -3.588E-12 L=-3.648E-12 -3.455E-12 -4.145E-12 -3.775E-12 -3.861E-12 -3.828E-12 L=-4.221E-12

Re: VIM:文本中有一些科学计数法的数字,想对这些数字同时乘以"-1",该怎么做?

发表于 : 2011-07-08 22:48
lilydjwg
两个正则替换就可以了。没时间了,就不帮你写出来了。

Re: VIM:文本中有一些科学计数法的数字,想对这些数字同时乘以"-1",该怎么做?

发表于 : 2011-07-09 9:49
Fermat618
lilydjwg 写了:两个正则替换就可以了。没时间了,就不帮你写出来了。
我不会,你有时间了写出来看看吧。

数字不多嘛,我觉得还是把那样数字复制出来,并且粘贴到 Matlab 之类的软件内,集体乘以-2, 再拿出来比较直观。

Re: VIM请教:文本中有一些科学计数法的数字,想对这些数字同时乘以"-2",该怎么做?

发表于 : 2011-07-09 11:01
lh-n
我替lilydjwg写:

代码: 全选

:%s/-\=\d\.\d\+E\S*\ze\s/\=-2*str2float(submatch(0))/g

:%s/e/E/g

Re: VIM请教:文本中有一些科学计数法的数字,想对这些数字同时乘以"-2",该怎么做?

发表于 : 2011-07-09 11:05
lh-n
有个小错误,要确保每行最后有个才空格管用。

Re: VIM请教:文本中有一些科学计数法的数字,想对这些数字同时乘以"-2",该怎么做?

发表于 : 2011-07-09 11:14
lh-n
改了下,用这个更好一些:

代码: 全选

:%s/\<-\=\d\.\d\+E-\d*\>/\=-2*str2float(submatch(0))/g

Re: VIM请教:文本中有一些科学计数法的数字,想对这些数字同时乘以"-2",该怎么做?

发表于 : 2011-07-12 7:05
xhwubai
:em11
非常感谢各位!!!受教了!!!

Re: VIM请教:文本中有一些科学计数法的数字,想对某些数字同时乘以"-2",肿么办?

发表于 : 2011-07-22 23:00
lh-n

代码: 全选

%s/L=\zs\<-\=\d\.\d\+E-\d*\>/\=-2*str2float(submatch(0))/g

Re: VIM请教:文本中有一些科学计数法的数字,想对某些数字同时乘以"-2",肿么办?

发表于 : 2011-07-22 23:08
xhwubai
lh-n 写了:

代码: 全选

%s/L=\zs\<-\=\d\.\d\+E-\d*\>/\=-2*str2float(submatch(0))/g
欧,,,卖糕滴,,, lh-n兄,U R my super star!!!

不过,这命令对负数好像没起作用???

Re: VIM请教:文本中有一些科学计数法的数字,想对某些数字同时乘以"-2",肿么办?

发表于 : 2011-08-02 0:26
yx_wh

代码: 全选

%s/L=\zs-\=\d\.\d\+E-\d*\>/\=-2*str2float(submatch(0))/g