提问人:sbi 提问时间:6/25/2014 更新时间:6/25/2014 访问量:144
如何在Eclipse中找到仅以空格开头的标识符?
How to find an identifier in Eclipse that's only preceded by white space?
问:
使用Eclipse,我想找到一个标识符,其中它前面除了空格之外没有任何内容:
ident // match
ident // match
ident // match
// ident // no match
//ident // no match
blah_ident // no match
我已经管理了()。但是,这也捕获了前面的空白,这不是我想要的。(特别是因为它还捕获了前面的空行。^[\s]*ident
在 Eclipse 中,如何找到前面有空格的标识符,同时又不捕获空格?
答:
2赞
Casimir et Hippolyte
6/25/2014
#1
一种方法是在替换字符串中使用捕获组和引用,以在之前使用空格:$1
ident
search: ^(\h*)ident
replace: $1WhatYouWant
另一种方法是使用后视功能(似乎支持 Luna 中的可变长度子模式):
search: (?<=^\h*)ident
replace: WhatYouWant
评论
0赞
sbi
6/25/2014
这不会捕获前面的空行,但会捕获其他空格。ident
0赞
Casimir et Hippolyte
6/25/2014
@sbi:如果要捕获前面的空行,请替换为 .我曾经避免这种情况。\h
\s
\h
0赞
sbi
6/25/2014
你的第二个想法对我大喊大叫。(当我使用 时,这种情况会消失,但这需要很长时间,并且似乎错过了发生。而且我不想捕获前导空格,既不想换行符,也不想捕获其他任何东西。Illegal/unsupported escape sequence near index 6
\s
0赞
Casimir et Hippolyte
6/25/2014
@sbi:这两种模式在 Luna 中效果很好。而这两种解决方案是匹配并确保它不被评论的唯一方法。第一种模式是更“便携”的,如果你的 eclipse 版本太旧,请替换为 .ident
\h
[^\S\r\n]
0赞
sbi
6/25/2014
好的,搜索结束了。搜索花了很长时间(将近 10 分钟,而其他模式在 <5 秒内完成),但它确实找到了所有事件并且只捕获了,所以这就是我所追求的。谢谢!(?<=^\s*)ident
ident
评论