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();
      }
    }

  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/hwgok/p/6002235.html
Copyright © 2011-2022 走看看