在eclipse中添加一定量的空白区域替换

时间:2016-07-09 13:08:03

标签: regex eclipse replace

我正在玩c文件编辑,使用eclipses查找和替换。 我开始尝试查找所有情况,其中指向我们的Frames数组中的元素的指针正在初始化(Frame = struct在代码中使用)。然后我改变了表达式,使这个数组成为二维。

find = (.*Frame\*|.*pFrame)(.*Frame.*=.*)(&Frames)(\[.*\])(\w*)

replace = $1$2&Frames\[group\]$4

这样的陈述

Frame* thisFrame = &Frames[frame]

和这个

pFrame myFrame = &Frames[i]

成为这个

Frame* thisFrame = &Frames[group][frame]

和这个

pFrame myFrame = &Frames[group][i]

我现在想要将空格添加到某个行长度,然后添加注释。例如" //索引框架"。

pFrame myFrame = &Frames[group][i]                       // indexing Frames

基本上我想清理(\ w *)位。任何帮助表示赞赏。

P.S。我是一个正则表达式的菜鸟,所以欢迎任何建议编辑以更清晰的方式进行查找

编辑: 我还想编辑find以不包括以//开头的行。我试过了

([^//]+)(.*Frame\*|.*pFrame)(.*Frame.*=.*)(&Frames)(\[.*\])(\w*)

1 个答案:

答案 0 :(得分:1)

我建议

^((?:(?!//).)*(?:Frame\*|pFrame))(.*Frame.*=.*)(&Frames)(\[.*\])(\w*)

替换为$1$2&Frames\[group\]$4 // indexing Frames

说明

  • ^ - 行的开头
  • ((?:(?!//).)*(?:Frame\*|pFrame)) - 第1组匹配
    • (?:(?!//).)* - 零个或多个不是//序列起点的字符
    • (?:Frame\*|pFrame) - Frame*pFrame
  • (.*Frame.*=.*) - 0+任何字符,直到最后Frame,0 +任何字符,=和0 +任何字符
  • (&Frames) - 文字&Frames
  • (\[.*\]) - 第4组匹配[,0 +任何字符和]
  • (\w*) - 第5组匹配0+字词