java - 正则表达式:简化 java 方法的参数(java.lang.String、xyz.Clazz -> String、Clazz)

标签 java regex

我需要一些关于简单正则表达式的帮助。目标是简化 Java 方法的参数。

输入:java.util.Locale arg0, java.lang.String arg1, java.lang.Object... arg2

输出:区域设置 arg0,字符串 arg1,对象... arg2

我就是这样开始的,正则表达式还不能用。

Pattern regex = Pattern.compile("([a-z].*?)[A-Z]", Pattern.DOTALL);
String str = "java.util.Locale arg0, java.lang.String arg1, java.lang.Object... arg2";
// now replace all groups (java.util., java.lang.) with an empty string
// System.out.println(regex.matcher(str).replaceAll(""));

我该怎么做?

最佳答案

以下打印 Locale arg0, String arg1, Object...arg2:

Pattern regex = Pattern.compile("(\\w+\\.(?=\\w))+");
String str = "java.util.Locale arg0, java.lang.String arg1, java.lang.Object... arg2";
System.err.println(regex.matcher(str).replaceAll(""));

正则表达式将匹配直到最后一个点的所有内容,使得后面的字符(由于前瞻性而未被正则表达式使用)是一个单词字符,例如一封信。这意味着它也适用于可变参数,因为您有 Object...,其中点后跟另一个点,而不是单词字符。

关于java - 正则表达式:简化 java 方法的参数(java.lang.String、xyz.Clazz -> String、Clazz),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34829379/

相关文章:

java - Java中的构造函数和new运算符

java - 升级到 JUnit4 并通过同时运行遗留 JUnit 3 测试和测试套件来保留它们

c# - 如何使用 RegEx 分隔数字和字符?

javascript - 当单行上有多个匹配项时,如何仅找到 `' `(具有最小长度)之间的字符串?

regex - 如何在 Go 中将正则表达式与反向引用相匹配?

Java - 正则表达式查找代码中的注释

java - java列表的内存占用计算和GC计算

java - 具有完全限定类名的 HQL

Java 对象复制最佳选择?

正则表达式替换问题