Java教程

【java 中用 split 根据逗号分割字符串及正则表达式拓展】

本文主要是介绍【java 中用 split 根据逗号分割字符串及正则表达式拓展】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

正则表达式可用于解析,判断字符串格式内容。

 

demo里有两个例子,第一个例子时解析一个长字符串,其中包括多个字段,有字符串类型和整型,可以根据正则表达式去按逗号分割,且不会把字符串类型字段中的 逗号计入,适用于摘要这种字段。

第二个例子是邮箱格式的验证,可以简单了解正则表达式的使用。

代码如下:

@Test
    public void regularExp() {
        // 正则表达式学习

        // 1、逗号分割时不计入字符串字段内的逗号,如摘要中的逗号
        String line = "\"缴纳投标保障金,需用惠州公司基本账户,汇款时需注明汇款用途为“E19138的磋商保证金,银行开具的汇款单盖章原件由磋商供应商留存,作为保证金收取依据”\"        ,DN02,\"公诚管理咨询有限公司\"";
        List<String> colsValue = Arrays.asList(line.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1));
        for (int x = 0; x < colsValue.size(); x++) {
            System.out.println(colsValue.get(x));
        }
        System.out.println("===以上为逗号分割===");
        System.out.println("\n");
        


        // 2、判断Email地址是否合法
        String email1 = "1486991950@qq.com";
        String email2 = "@qq.com";
        String email3 = "234af--j@qq.com";
        String email4 = "2344@q44.com";
        String email5 = "235435.com";
        String email6 = "124345324@.com";
        String rule = "^\\w+([-+.]\\w+)*@\\w+([.]com)*$";
        /**
         *  按表达式排列顺序简单解释下:
         *  ^            开始匹配
         *  ^\ 和 $      分别指字符串的开始与结束 ,+ 号代表前面的字符必须至少出现一次(1次或多次)。
         *  \w          表示匹配字母、数字、下划线。等价于 [A-Za-z0-9_] ,这里有两个\\是因为idea粘贴字符串会自动转义
         *  ([-+.]\w+)  意思是-+. 这三个字符参加匹配(但是只能有一位字符,++这样是不行的),其字符后再加上数字若干
         *  ([-+.]\w+)* 多了个*,表示[]* 所代表的内容出现次数不固定,为 ≥0 次
         *  @\w+([.]com)*   原理同上:  @qq3.com
         *  $           结束匹配
         */

        List<String> str = new ArrayList<>();
        str.add(email1);
        str.add(email2);
        str.add(email3);
        str.add(email4);
        str.add(email5);
        str.add(email6);
        Pattern pattern;
        Matcher matcher;
        for(int i = 0; i<str.size(); i++) {
            pattern = Pattern.compile(rule);
            matcher = pattern.matcher(str.get(i));
            if (matcher.matches())
                System.out.println(str.get(i) + " 合法");
            else
                System.out.println(str.get(i) + " 不合法");
        }


        System.out.println("===以上为email分割===");
        System.out.println("\n");
    }

输出如下:

"缴纳投标保障金,需用惠州公司基本账户,汇款时需注明汇款用途为“E19138的磋商保证金,银行开具的汇款单盖章原件由磋商供应商留存,作为保证金收取依据”"        
DN02
"公诚管理咨询有限公司"
===以上为逗号分割===


1486991950@qq.com 合法
@qq.com 不合法
234af--j@qq.com 不合法
2344@q44.com 合法
124345324@.com 不合法
235435.com 不合法
===以上为email分割===

 

这篇关于【java 中用 split 根据逗号分割字符串及正则表达式拓展】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!