Java 正则四 一些例子

例子1-分组提取命令与IP

String str = "net an - 127.0.0.1 -bbb";
String re = "(\\w+)[^\\d{1,3}\\.]+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})";
Pattern p = Pattern.compile(re);
Matcher matcher = p.matcher(str);
if(matcher.find()) {    
    Utils.println(matcher.group(1));        // net   
    Utils.println(matcher.group(2));        // 127.0.0.1
}

正则解析:
String regex="(\w+)[^\d{1,3}\.]+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})";
(\w+):这是第1个分组,获取的是net这样的数字与字母组合的命令名称
[\d{1,3}\.]+:中间这个不是分组,他是一个过滤符的[\d]代表任何非数字的字符
最后那个就是ip了.[^\d]在遇到数字之后就会停了.

例子2-分组提取字符串

现有字符串:('下载附件.txt','556677','hello'), 想提取 里面3个字符串:

  String str2 = "downloadfile('下载附件.txt','556677','hello')";
        pattern = Pattern.compile("'([^']+)',?");       // "('.+?')"
        matcher = pattern.matcher(str2);
        while(matcher.find()) {
            System.out.println(matcher.group(1));  // 拿第一组
        }
输出

你可能感兴趣的:(Java 正则四 一些例子)