簡體   English   中英

如何捕獲String表達式並僅替換其中一部分?

[英]How to capture a String expression and replace only a part of it?

我想捕獲以下字符串表達式:

火柴:

 - MyUtilClass.cast(MyClass.class, <-- including the space after comma
 - MyUtilClass.cast(MyClass2.class, <-- including the space after comma
 - MyUtilClass.cast(MyClass3.class, <-- including the space after comma

並將匹配項替換為:

 - MyUtilClass.uncheckedCast(
 - MyUtilClass.uncheckedCast(
 - MyUtilClass.uncheckedCast(

結果:

- MyUtilClass.uncheckedCast(query.getResultList());
- MyUtilClass.uncheckedCast(q.getResultList());
- MyUtilClass.uncheckedCast(rootQuery.getResultList());

我正在使用Eclipse IDE。

謝謝

正則表達式:

- MyUtilClass\.cast\(MyClass[23]?\.class,\s*

用。。。來代替:

- MyUtilClass.uncheckedCast(

您可以使用以下內容進行匹配:

MyUtilClass[.]cast[(]MyClass\d*[.]class,\s* 

或者如果您只有MyClass, MyClass2 and MyClass3使用以下命令

MyUtilClass[.]cast[(]MyClass[23]?[.]class,\s* 

並替換為以下內容:

MyUtilClass.uncheckedCast(

演示

這匹配"MyUtilClass.cast(AnyClassName.class, "並將其替換為"MyUtilClass.uncheckedCast("

String regex = Pattern.quote("MyUtilClass.cast(") + "[a-zA-Z_$][a-zA-Z\\d_$]*"
        + Pattern.quote(".class, ");

s = s.replaceAll(regex, "MyUtilClass.uncheckedCast(");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM