比如说有abcdefgh10.0.0.2efghijklmn这样一个字符串,还有一个匹配IP地址的正则表达式:(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+),我想取出符合这个正则表达式的字符(10.0.0.2)。该如何实现?

解决方案 »

  1.   


    String src = "abcdefgh10.0.0.2efghijklmn";
    String regx  = "(\\d{1,3}\\.){3}\\d{1,3}";
    Matcher m = Pattern.compile(regx).matcher(src);
    while(m.find()){
      System.out.println(src.substring(m.start(), m.end()));
    }}
      

  2.   

    import java.util.regex.*;
    public class regx {
    public static void main(String[] args) {
    Pattern p = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
    Matcher m = p.matcher("abcdefgh10.0.0.2efghijklmn");
    while(m.find()){
    System.out.println("abcdefgh10.0.0.2efghijklmn".substring(m.start(),m.end()));//或者用下面的也行
    System.out.println(m.group());
    }
    }}
      

  3.   

    String str = "abcdefgh10.0.0.2efghijklmn";
    Pattern p = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
    Matcher m = p.matcher(str);

    if(m.find()){
    System.out.println(m.group());
    }