我需要一些关于简单正则表达式的帮助。目标是简化 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/