[英]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.