Java 如何捕获字符串表达式并仅替换其一部分?

Java 如何捕获字符串表达式并仅替换其一部分?,java,regex,eclipse,Java,Regex,Eclipse,我想捕获以下字符串表达式: 匹配项: - 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.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(query.getResultList());
- MyUtilClass.uncheckedCast(q.getResultList());
- MyUtilClass.uncheckedCast(rootQuery.getResultList());
我正在使用EclipseIDE

谢谢你

正则表达式:

- MyUtilClass\.cast\(MyClass[23]?\.class,\s*
替换为:

- MyUtilClass.uncheckedCast(

您可以使用以下选项进行匹配:

MyUtilClass[.]cast[(]MyClass\d*[.]class,\s* 
或者,如果您只有MyClass、MyClass2和MyClass3,请使用以下命令

MyUtilClass[.]cast[(]MyClass[23]?[.]class,\s* 
并替换为以下内容:

MyUtilClass.uncheckedCast(
请参见

这将匹配
“MyUtilClass.cast(AnyClassName.class)”
,并将其替换为
“MyUtilClass.uncheckdcast”(
):


[23]?
应该在
MyClass
之后:)这些类实际上被称为
MyClass
MyClass2
MyClass3
?或者可能有任何类名吗?实际上是任何类名,比如Target.class、User.class、Region.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(");