【发布时间】:2016-09-19 13:02:22
【问题描述】:
我正在尝试学习正则表达式以加快程序的编辑速度。
我的程序有数百个对 3 维数组 pc 的引用。例如,数组元素可能被称为pc(i+1,j+1,k)、pc(i,j+1,k-1) 或pc(i,j,k)。我需要一个正则表达式来搜索结尾括号,以便可以将其替换为“,1)”。例如,最终目标是将pc(i,j,k) 转换为pc(i,j,k,1)。
我不需要正则表达式来进行实际替换——我什至不知道这是否可能——我只需要它来找到结束括号,以便我可以替换它。
任何帮助或提示将不胜感激!
这是我将要搜索的代码的摘录:
PpPx_ey = 0.5*( FNy(i,j+1,k) *((pc(i,j+1,k)-pc(i-1,j+1,k))/xdiff(i,j,k)+(pc(i+1,j+1,k)-pc(i,j+1,k))/xdiff(i+1,j,k) )+(1.-FNy(i,j+1,k))*((pc(i,j, k)-pc(i-1,j, k))/xdiff(i,j,k)+(pc(i+1,j ,k)-pc(i,j ,k))/xdiff(i+1,j,k)) ).
进一步澄清:我使用的是 Atom 记事本,它允许在 CTRL-F 命令中使用正则表达式。我想对我 CTRL-F 的东西使用“替换”选项,但我需要为那部分使用文字字符串。因此,如果我可以使用正则表达式在看起来像 pc( ) 的任何内容中找到结尾“)”,我可以将其替换为“,1)”。
【问题讨论】:
-
pc\(.*?(\))怎么样? -
正确找到
pc()形式的字符串,但我只需要它返回结束括号,而不是整个字符串。表达式pc\(.*?(\))从pc(i,j,k,0)中找到c(i,j,k,0),但我需要它只返回)。
标签: regex multidimensional-array