翻譯|使用教程|編輯:吳園園|2020-06-05 16:36:14.490|閱讀 377 次
概述:本文將為您介紹IntelliJ IDEA使用源代碼之結(jié)構(gòu)搜索和替換示例。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
IntelliJ IDEA是Java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為優(yōu)秀的Java開發(fā)工具之一,尤其在智能代碼助手、代碼自動提示、重構(gòu)、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說是超常的。IntelliJ IDEA 現(xiàn)已加入在線訂購,點(diǎn)擊此處了解價(jià)格詳情>>
statement
$Statement$;
將出現(xiàn)次數(shù)增加到一定數(shù)量,您可以找到包含最多指定數(shù)量元素的語句序列。
方法調(diào)用
$Instance$.$MethodCall$($Parameter$)
該模板與方法調(diào)用表達(dá)式匹配。如果出現(xiàn)次數(shù)為零,則意味著可以省略方法調(diào)用。
@Deprecated $Instance$.$MethodCall$($Parameter$)
您可以使用此模板查找已棄用的方法,并將其用作創(chuàng)建其他帶注釋的方法模板的原型。專門用于搜索對不贊成使用的方法的方法調(diào)用,可以選擇對不贊成使用的方法的現(xiàn)有模板方法調(diào)用。
if陳述
if ($Expr$) {
$ThenStatements$;
}
else {
$ElseStatements$;
}
搜索注釋和/或字符串文字
考慮一個想要查找包含“ foo”的注釋或文字的人。搜索模板將類似于 $SomethingWeWantToFind$ 或"$SomethingWeWantToFind$"。如果要查找包含某些特定單詞(例如,foo是一個單詞)的注釋/字符串,則應(yīng)將其指定為文本約束。
添加嘗試/捕獲/最終代碼
如果要用try/catch/finally結(jié)構(gòu)替換語句,則可以建議使用以下一對搜索和替換模板。搜索模板為:
$Statements$;
具有指定的最大出現(xiàn)次數(shù)作為約束。
替換模板為:
try {
$Statements$;
}
catch(Exception ex) {
}
查找一個類的所有后代或?qū)崿F(xiàn)某個接口的所有類
考慮以下搜索模板:
class $Clazz$ extends $AnotherClass$ {}
要么
class $Clazz$ implements $SomeInterface$ {}
作為變量$ AnotherClass $或$ SomeInterface $的文本約束,請指定基類或已實(shí)現(xiàn)接口的名稱。
尋找所有這樣的方法
要查找同一接口方法的不同實(shí)現(xiàn),請使用以下搜索模板:
class $a$ { public void $show$(); }
為$show$變量指定文本約束,并啟用選項(xiàng)。 此變量是搜索的目標(biāo)。
使用@Modifier查找包的本地方法和實(shí)例方法
IntelliJ IDEA建議為類的包本地和 實(shí)例 字段提供預(yù)定義的模板。這些模板使用 @Modifier 批注,當(dāng)無法使用自然語言方式表達(dá)搜索目標(biāo)時,該注釋有助于描述搜索目標(biāo)。
但是,如果需要搜索包本地方法或?qū)嵗椒ǎ瑒t必須使用@Modifier注釋自己創(chuàng)建相應(yīng)的搜索模板。
要使用可見性修飾符包local 和instance來指定查找所有方法的條件 ,請使用以下搜索模板:
class $Class$ { @Modifier("packageLocal") @Modifier("Instance" ) $ReturnType$ $MethodName$($ParameterType$ $Parameter$); } }
在搜索中使用“包含在約束中”字段
現(xiàn)有示例使用以下模板:
在包含在約束字段中,將if('_a) { '_st*; }where _a和_st分別放置為變量和 *表示零次或多次出現(xiàn),并選擇 Complete Match變量的Invert condition 復(fù)選框,將搜索該語句中未包含的日志記錄語句。 if
HTML和XML的示例
以下示例說明如何在HTML和XML代碼中使用結(jié)構(gòu)化搜索。
搜索XML和HTML標(biāo)記,屬性及其值
通過在變量上設(shè)置約束$tag$,可以指定要查找的標(biāo)簽。例如,如果指定li,則將所有l(wèi)i標(biāo)簽。
考慮以下用于XML和HTML搜索的模板:<$tag$ $attribute$=$value$ />。例如,如果id將$attribute$變量的文本過濾器指定為變量,將\d+正則表達(dá)式指定為變量的文本過濾器,則$value$可以在id屬性中找到所有具有數(shù)值的標(biāo)記。
刪除所有id屬性大于2的行
1、在“ 搜索模板”字段中,我們創(chuàng)建一個模板,以搜索屬性中l(wèi)i 具有數(shù)值(\d+)的所有標(biāo)簽id。我們將搜索擴(kuò)展到具有此類值的整個字符串(搜索目標(biāo)=完全匹配)。
2、我們使用以下Groovy腳本過濾這些行:d.getText().replaceAll (/"/, '').toInteger() > 2。腳本讀取d變量的內(nèi)容,并將其作為字符串返回(例如"1")。然后,腳本將替換所有引號,并將字符串值轉(zhuǎn)換為整數(shù)并將其與進(jìn)行比較2。
3、在“ 替換模板”字段中,我們什么都沒有刪除整個字符串。搜索后,我們選擇全部替換以執(zhí)行替換。
將p標(biāo)簽中class屬性的大寫值轉(zhuǎn)換為小寫
1、在搜索模板字段中,我們創(chuàng)建一個模板,該模板搜索屬性中p具有大寫值([A-Z].* 和區(qū)分大小寫)的所有標(biāo)簽class。我們僅將搜索范圍縮小到這些class值(搜索目標(biāo)= b)。
2、在“ 替換模板”字段中,我們創(chuàng)建一個新變量, $d$并為其分配一個Groovy腳本(b.getText().toLowerCase())。搜索后,我們選擇全部替換 以執(zhí)行替換。
====================================================
想要了解或購買IntelliJ IDEA正版授權(quán)的朋友,歡迎
JetBrain技術(shù)交流群現(xiàn)已開通,QQ搜索群號“786598704”或者掃描下方二維碼即可加入
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: