Java之正则表达式的组概念-yellowcong

来源:互联网 发布:电脑看片有什么软件 编辑:程序博客网 时间:2024/06/05 18:04

Java正则组的使用

组在正则使用的时候,需要都用()来将正则表达式括起来分组,比如([\\w]+.)([\\w]*\\.[\\w]*),才可以使用这个数据,不然,就不可以使用组这个东西了

public class StringTest {    public static void main(String [] args){        //        String str = "wwww.yellowcong.net";        //表示  (字符串 .)        String regEx = "([\\w]+.)([\\w]*\\.[\\w]*)";        Pattern pattern = Pattern.compile(regEx);        Matcher matcher = pattern.matcher(str);        if(matcher.find()){            System.out.println(matcher.group()); //输出大组的数据, 通过 group(0)是一样的            System.out.println(matcher.group(0));            System.out.println(matcher.group(1)); //输出第一组的数据            System.out.println(matcher.group(2)); //输出第二组的数据        }    }}

输出的结果,会发现,group是从0开始的,0表示的是整个数据集合
一个正则表达式中最多可以保存9个 组,太多了,计算机效率就降低了

wwww.yellowcong.netwwww.yellowcong.netwwww.yellowcong.net

空格匹配

\s s小写 表示的是空格
\S 非空白符号,也就是看得见的字符串

public class StringTest {    public static void main(String [] args){        String field = "  rank                CHAR(3),";        String regxStr = "(\\s+)(\\S+)(\\s+)([a-zA-Z]+)(\\S+)";        Pattern pattern = Pattern.compile(regxStr);        Matcher matcher = pattern.matcher(field);        if(matcher.find()){            System.out.println(matcher.group(2));            System.out.println(matcher.group(4));            System.out.println(matcher.group(5));        }    }}