java - 如何捕获字符串表达式并仅替换其中的一部分?

标签 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.uncheckedCast(
 - MyUtilClass.uncheckedCast(
 - MyUtilClass.uncheckedCast(

结果:

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

我正在使用 Eclipse IDE。

谢谢

最佳答案

您可以使用以下内容进行匹配:

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

或者,如果您只有 MyClass、MyClass2 和 MyClass3,请使用以下内容

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

并替换为以下内容:

MyUtilClass.uncheckedCast(

参见DEMO

关于java - 如何捕获字符串表达式并仅替换其中的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412440/

相关文章:

spring - import org.springframework.data无法解析

java - 在 Android Native App 之前获取本地存储项目

java - 这两种方式指定类有什么区别?

Java 正则表达式 : Replacing a phone number (including optional parentheses)

Python 字符串 : how to replace only some numbers?

用于匹配任何 URL 字符的正则表达式

java - Eclipse 找不到 Oracle VM 模拟器

html - 无法在Go中将图像添加到html模板

java - NoClassDefFoundError : scala/ScalaObject in mixed Scala/Java project

java - 使用 JSTL 将属性设置为默认值