我想捕获以下字符串表达式:
匹配
- 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。
谢谢
答案 0 :(得分:1)
REGEX:
- MyUtilClass\.cast\(MyClass[23]?\.class,\s*
替换为:
- MyUtilClass.uncheckedCast(
答案 1 :(得分:1)
您可以使用以下内容进行匹配:
MyUtilClass[.]cast[(]MyClass\d*[.]class,\s*
或如果您只有MyClass, MyClass2 and MyClass3
,请使用以下
MyUtilClass[.]cast[(]MyClass[23]?[.]class,\s*
并替换为以下内容:
MyUtilClass.uncheckedCast(
请参阅DEMO
答案 2 :(得分:0)
匹配"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(");