翻譯|使用教程|編輯:吳園園|2020-06-05 16:36:14.490|閱讀 377 次
概述:本文將為您介紹IntelliJ IDEA使用源代碼之結構搜索和替換示例。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
IntelliJ IDEA是Java語言開發的集成環境,IntelliJ在業界被公認為優秀的Java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創新的GUI設計等方面的功能可以說是超常的。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$,可以指定要查找的標簽。例如,如果指定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”或者掃描下方二維碼即可加入
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: