时间:2011-07-26 09:57:03

标签: java regex

我的格式为

10.10.09.09.00

现在我想找到前三个地方:

String getformattedString(Strring str){
  //impl
  return newStr;
}

例如10.10.09. 我该怎么办?

5 个答案:

答案 0 :(得分:4)

不必使用正则表达式,这也可以使用:

String[] fields = str.split("\\.");

return fields[0] + "." + fields[1] + "." + fields[2] + ".";

答案 1 :(得分:4)

Pattern regex = Pattern.compile("^(?:\\d+\\.){3}");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
   // matched text: regexMatcher.group()
}

答案 2 :(得分:1)

这是一个单线解决方案:

public static String getFormattedString(String str) {
    return str.replaceAll("(^(\\d\\d\\.){3}).*", "$1");
}

这是测试代码:

public static void main(String[] args) {
    System.out.println(getFormattedString("10.10.09.09.00"));
}

输出:

10.10.09.

答案 3 :(得分:0)

Regular expressions听起来就像你追求的那样。

答案 4 :(得分:0)

也尝试这样:

return str.Substring(0, str.LastIndexOf(".", str.LastIndexOf(".") - 1) + 1)