zoukankan      html  css  js  c++  java
  • 正则表达式在java程序中的使用

    package com.boco;


    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class TestReg {

      /**
      * 验证传入的字符串是否整个匹配正则表达式
      * @param regex 正则表达式
      * @param decStr 要匹配的字符串
      * @return 若匹配,则返回true;否则,返回false
      */
      public static boolean validate(String regex,String decStr){
        //表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
        Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        //创建Matcher对象
        Matcher m = p.matcher(decStr);
        //是否完全匹配
        boolean flag = m.matches();//该方法尝试将整个输入序列与该模式匹配
        return flag;
      }

      /**
      * 验证传入的字符串是否有子字符串匹配正则表达式
      * @param regex 正则表达式
      * @param decStr 要匹配的字符串
      * @return 若匹配,则返回true;否则,返回false
      */
      public static boolean validate2(String regex,String decStr){
        //表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
        Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        //创建Matcher对象
        Matcher m = p.matcher(decStr);
        //是否完全匹配
        boolean flag = m.find();//该方法扫描输入序列以查找与该模式匹配的下一个子序列
        return flag;
      }


      /**
      * 给定的字符串中是否有符合给定正则表达式的子字符串,返回匹配的第一个子字符串
      * @param regex 正则表达式
      * @param decStr 要匹配的字符串
      * @return 返回匹配的第一个子字符串,否不匹配.返回null
      */
      public static String search(String regex,String decStr){
        //表达式对象 Pattern.CASE_INSENSITIVE表示 启用不区分大小写的匹配
        Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        //创建Matcher对象
        Matcher m = p.matcher(decStr);
        //是否找到匹配
        boolean flag = m.find();//该方法扫描输入序列以查找与该模式匹配的下一个子序列
        String findString = "";
        if(flag){
          findString =m.group();
          String findString0 = m.group(0);//group(),group(0)返回符合整个表达式的子字符串
          String findString1 = m.group(1);//group(1)返回符合整个表达式的子字符串中匹配第一个表达式的子字符串
          System.out.println(findString1);

        }
        return findString;
      }

      /**
      * 返回给定字符串中匹配给定正则表达式的所有子字符串
      * @param regex 正则表达式
      * @param decStr 要匹配的字符串
      * @return 返回所有匹配给定正则表达式的所有子字符串
      */
      public static List searchSubStr(String regex,String decStr){
        Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(decStr);
        List<String> list = new ArrayList<String>();
        while(m.find()){
          list.add(m.group());
        }
        for(String str:list){
          System.out.println(str);
        }
        return list;
      }

      /**
      * 替换给定字符串中匹配正则表达式的子字符串
      * @param regex 正则表达式
      * @param decStr 要匹配的字符串
      * @param replaceStr 将符合正则表达式的子字符串替换为该字符串
      * @return 返回替换以后新的字符串
      */
      public static String replace(String regex,String decStr,String replaceStr){
        Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(decStr);
        //替换
        String newString = m.replaceAll(replaceStr);
        System.out.println(newString);
        return newString;
      }

      public static void testSplit(){
        String str ="abc5Adefghi7Ajklmn";
        //分割
        String[] strs = str.split("(\d)A");
        for(int i=0;i<strs.length;i++){
          System.out.println(strs[i]);
        }
      }
      public static void main(String[] args) {
        //replace("\d", "dsfd;sa;ksd12a34b567c890d88e999f", "*");
        //System.out.println(validate("\d+","3344455aa"));
        //System.out.println(validate2("\d+","3344455aa"));
        //System.out.println(searchSubStr("(\d+)([a-z]+)", "334455aa-2211aa--2255bb"));
        testSplit();
      }
    }

  • 相关阅读:
    思维导图形式带你读完《大型网站技术架构》中
    思维导图形式带你读完《大型网站技术架构》上
    淘淘商城项目补充(2)商品上架和下架功能实现
    淘淘商城项目补充(1)批量删除商品功能实现
    商城项目(ssm+dubbo+nginx+mysql统合项目)总结(3)
    阿里Java研发工程师实习面经,附面试技巧
    商城项目(ssm+dubbo+nginx+mysql统合项目)总结(2)
    商城项目(ssm+dubbo+nginx+mysql统合项目)总结(1)
    高性能优秀的服务框架-dubbo介绍
    回溯算法_01背包问题_Java实现
  • 原文地址:https://www.cnblogs.com/hwgok/p/6002235.html
Copyright © 2011-2022 走看看