从一个给定的字符串,我试图替换一个模式,如" sometext.othertext.lasttext"用" lasttext"。这是否可以在Java中使用Regex替换?如果有,怎么样?提前谢谢。
我试过
"hellow.world".replaceAll("(.*)\\.(.*)", "$2")
导致世界。但是,我想替换任何这样的任意序列。例如,com.google.code应替换为代码,com.facebook应替换为facebook。
只需添加,测试输入是: if(com.google.code)then 测试输出应该是: if(code)then
感谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
我相信这就是你要找的,如果你试图避免使用String方法。它可以更简洁,但我希望这会让你更好地理解。
正如其他人所说,字符串方法更清晰。
class Split {
public static void main (String[] args) {
String inputString = "if (com.google.code) then";
Pattern p=Pattern.compile("((?<=\\()[^}]*(?=\\)))"); // Find text within parenthesis
Pattern p2 = Pattern.compile("(\\w+)(\\))"); // Find last portion of text between . and )
Matcher m = p.matcher(inputString);
Matcher m2 = p2.matcher(inputString);
String in2 = "";
if (m2.find())
in2=m2.group(1); // else ... error checking
inputString = m.replaceAll(in2); // do whatcha need to do
}
}
如果括号不是问题,请使用此。
class Split {
public static void main (String[] args) {
String in = "if (com.google.code) then";
Pattern p = Pattern.compile("(\\w+)(\\))");
Matcher m = p.matcher(in);
if(m.find())
in = m.group(1);
System.out.println(in); // or whatever
}
}