我想通过eclipse搜索以下两行的多个文件:
@Length(max = L_255)
private String description;
并用这两个替换它们:
@Length(max = L_255, message="{validator.description.len}")
private String description;
答案 0 :(得分:55)
关于如何获取所选块的正则表达式的另一个提示。 打开包含多行(多行)的文件之一进行搜索或替换。 单击 Ctrl + F 并选择“正则表达式”。关闭“查找/替换”窗口。 选择所需的块,然后再次单击 Ctrl + F 以打开“查找/替换”窗口。 现在,在“查找”文本框中,您可以使用与您的选择块完全匹配的正则表达式。
(我发现这一点,只有在为非常长的块手动创建regexp之后才会发现:)
答案 1 :(得分:39)
使用正则表达式时,默认情况下,Eclipse中的搜索是多行的:
(\@Length\(max = L_255)\)([\r\n\s]+private)
我想添加“私有字符串描述”
(\@Length\(max = L_255)\)([\r\n\s]+private\s+?String\s+description\s*?;)
替换为:
\1, message="{validator.description.len}")\2
它在由 CTRL - H 触发的文件搜索中完美运行。
如Tika的answer所述,您可以直接复制在“包含文本”字段中选择的两行:这些行将转换作为Eclipse的正则表达式。
答案 2 :(得分:14)
答案 3 :(得分:3)
包含多行作为手动构建的正则表达式的一部分的快速提示:
您通常会使用.*
来匹配任何字符零次或多次,而是考虑使用(?:.|\r?\n)*
之类的内容。或者在最后添加额外的?
以使其不贪婪。
解释 :.
与新行不匹配,因此需要执行“或 - 或”:括号与{匹配}管道之前的{1}}或之后的新行。 .
之后的?
使换行符在换行符之前可选,以允许Windows或Unix换行。 \r
将整个事件排除为捕获组(这有助于避免堆栈溢出)。
答案 4 :(得分:-1)
选择包含所有文件的文件夹,然后按 Ctrl + H 。