【发布时间】:2021-12-28 23:36:52
【问题描述】:
如何从 intellij 的结构搜索中排除术语? (不是文本或正则表达式搜索!)
例如,使用带注释的字段模板,假设我想将 @Lazy 添加到所有出现的 @Autowired 类型 X 的字段中?
这意味着我想匹配:
@Autowired
private X x;
还有
@Autowired
@Getter
Private X x;
但不是
@Lazy
@Autowired
Private X x;
我从手册中了解了如何通过向元素添加条件text=... 来进行肯定匹配,但不了解如何添加否定。
编辑1: 正则表达式不是答案的原因(如评论中所建议的那样),是因为结构搜索匹配诸如我正在搜索的注释和字段之间的不同注释之类的东西,它也匹配字段上的任何访问前缀等。
如果我从结构化转向正则表达式/文本搜索查找/替换,那么我将遇到许多其他问题。
【问题讨论】:
-
您可能会使用
/\@AutoWired\nprivate\s.*$/m和/@Autowired\n@Getter\nPrivate\s.*$/m之类的东西进行多行正则表达式匹配 -
但这失去了作为结构搜索的能力。 (我已经更新了问题以明确这一点)
标签: java spring intellij-idea