我正在玩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*)
答案 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+字词