加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 替换括号

发布时间:2020-12-14 06:03:33 所属栏目:百科 来源:网络整理
导读:我想在下面用“Exp […]”替换所有出现的“exp(…)”(实质上从Matlab改为Mathematica语法): exp(-(pi*k2*2i)/3)*(v9/4 + (3^(1/2)*(v8/2 + (3^(1/2)*v9)/2))/2 + (3^(1/2)*v8)/12) + exp((pi*k2*2i)/3)*(v9/4 + (3^(1/2)*(v8/2 + (3^(1/2)*v9)/2))/2 + (3^(
我想在下面用“Exp […]”替换所有出现的“exp(…)”(实质上从Matlab改为Mathematica语法):

exp(-(pi*k2*2i)/3)*(v9/4 + (3^(1/2)*(v8/2 + (3^(1/2)*v9)/2))/2 + (3^(1/2)*v8)/12) + exp((pi*k2*2i)/3)*(v9/4 + (3^(1/2)*(v8/2 + (3^(1/2)*v9)/2))/2 + (3^(1/2)*v8)/12) ...

是否可以使用vim,sed或awk自动执行此操作?诀窍不是将所有“(”替换为“[”,只替换在exp之后立即出现的那些和相应的对.

解决方法

你可以用vim宏做到这一点.

让我们按qaq清除寄存器. (如果记录了以前的任何操作,我们可以清除它们)

按qa开始宏录制.
搜索exp(通过输入/ exp(/ e.这会将光标放在(.
按%移动到其右括号.按r]将其替换为].
现在,按N移动到exp(.按r [将其替换为[.按@a递归替换所有此类实例.按q停止录制.

现在,你可以按@a来播放宏,它将取代所有地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读