Java开发工具IntelliJ IDEA使用源代码系列教程(十):结构搜索和替换示例

翻译|使用教程|编辑:吴园园|2020-06-05 16:36:14.490|阅读 12 次

概述:本文将为您介绍IntelliJ IDEA使用源代码之结构搜索和替换示例。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

相关链接:

IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。IntelliJ IDEA 现已加入在线订购,点击此处了解价格详情>>

点击下载IntelliJ IDEA最新试用版

statement

$Statement$;

将出现次数增加到一定数量,您可以找到包含最多指定数量元素的语句序列。

方法调用

$Instance$.$MethodCall$($Parameter$)

该模板与方法调用表达式匹配。如果出现次数为零,则意味着可以省略方法调用。

@Deprecated
$Instance$.$MethodCall$($Parameter$)

您可以使用此模板查找已弃用的方法,并将其用作创建其他带注释的方法模板的原型。专门用于搜索对不赞成使用的方法的方法调用,可以选择对不赞成使用的方法的现有模板方法调用。

if陈述

if ($Expr$) {
    $ThenStatements$;
}
else {
    $ElseStatements$;
}

搜索注释和/或字符串文字

考虑一个想要查找包含“ foo”的注释或文字的人。搜索模板将类似于 $SomethingWeWantToFind$ 或"$SomethingWeWantToFind$"如果要查找包含某些特定单词(例如,foo是一个单词)的注释/字符串,则应将其指定为文本约束。

添加尝试/捕获/最终代码

如果要用try/catch/finally结构替换语句,则可以建议使用以下一对搜索和替换模板。搜索模板为:

$Statements$;

具有指定的最大出现次数作为约束。

替换模板为:

try {
 $Statements$;
}
catch(Exception ex) {
}

查找一个类的所有后代或实现某个接口的所有类

考虑以下搜索模板:

class $Clazz$ extends $AnotherClass$ {}

要么

class $Clazz$ implements $SomeInterface$ {}

作为变量$ AnotherClass $或$ SomeInterface $的文本约束,请指定基类或已实现接口的名称。

寻找所有这样的方法

要查找同一接口方法的不同实现,请使用以下搜索模板:

class $a$ {
public void $show$();
}

为$show$变量指定文本约束,并启用选项。 此变量是搜索的目标。

使用@Modifier查找包的本地方法和实例方法

IntelliJ IDEA建议为类的包本地和 实例 字段提供预定义的模板。这些模板使用 @Modifier 批注,当无法使用自然语言方式表达搜索目标时,该注释有助于描述搜索目标。

但是,如果需要搜索包本地方法或实例方法,则必须使用@Modifier注释自己创建相应的搜索模板。

要使用可见性修饰符包local 和instance来指定查找所有方法的条件 ,请使用以下搜索模板:

class
$Class$ {
@Modifier("packageLocal") @Modifier("Instance" ) $ReturnType$ $MethodName$($ParameterType$ $Parameter$);
}
}

在搜索中使用“包含在约束中”字段

现有示例使用以下模板:

在包含在约束字段中,将if('_a) { '_st*; }where _a和_st分别放置为变量和 *表示零次或多次出现,并选择 Complete Match变量的Invert condition 复选框,将搜索该语句中未包含的日志记录语句。 if

HTML和XML的示例

以下示例说明如何在HTML和XML代码中使用结构化搜索。

搜索XML和HTML标记,属性及其值

  • 搜索标签的最简单模板是<$tag$/>。

通过在变量上设置约束$tag$,可以指定要查找的标签。例如,如果指定li,则将所有li标签。

考虑以下用于XML和HTML搜索的模板:<$tag$ $attribute$=$value$ />。例如,如果id将$attribute$变量的文本过滤器指定为变量,将\d+正则表达式指定为变量的文本过滤器,则$value$可以在id属性中找到所有具有数值的标记。

删除所有id属性大于2的行

1、在“ 搜索模板”字段中,我们创建一个模板,以搜索属性中li 具有数值(\d+)的所有标签id。我们将搜索扩展到具有此类值的整个字符串(搜索目标=完全匹配)。

2、我们使用以下Groovy脚本过滤这些行:d.getText().replaceAll (/"/, '').toInteger() > 2。脚本读取d变量的内容,并将其作为字符串返回(例如"1")。然后,脚本将替换所有引号,并将字符串值转换为整数并将其与进行比较2。

3、在“ 替换模板”字段中,我们什么都没有删除整个字符串。搜索后,我们选择全部替换以执行替换。

将p标签中class属性的大写值转换为小写

1、在搜索模板字段中,我们创建一个模板,该模板搜索属性中p具有大写值([A-Z].* 和区分大小写)的所有标签class。我们仅将搜索范围缩小到这些class值(搜索目标= b)。

2、在“ 替换模板”字段中,我们创建一个新变量, $d$并为其分配一个Groovy脚本(b.getText().toLowerCase())。搜索后,我们选择全部替换 以执行替换。

====================================================

想要了解或购买IntelliJ IDEA正版授权的朋友,欢迎咨询慧都官方客服

JetBrain技术交流群现已开通,QQ搜索群号“786598704或者扫描下方二维码即可加入

Java开发工具IntelliJ IDEA使用源代码系列教程(十):结构搜索和替换示例



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:IntelliJ IDEA https://www.jetbrains.com/help/idea/structural-search-and-replace-examples.html

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
IntelliJ IDEA

IntelliJ在业界被公认为优秀的Java开发平台之一,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面表现突出,并支持基于Android平台的程序开发。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat