zoukankan      html  css  js  c++  java
  • java之正则表达式

    不使用正则表达式:

    import java.util.Scanner;

    public class RagexDemo01 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String str = scanner.next();
            boolean flag = true;
            char[] c = str.toCharArray();
            for (int i = 0; i < c.length; i++) {
                if (c[i] < '0' || c[i] > '9') {
                    flag = false;
                    System.out.println("fffffffff");
                    break;
                }
            }
            if (flag) {
                System.out.println("All is number!");
            } else {
                System.out.println("Not all is number!");
            }
        }
    }

    使用正则表达式:

    import java.util.Scanner;
    import java.util.regex.Pattern;

    public class RegexDemo02 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String string = scanner.next();
            if (Pattern.compile("[0-9]+").matcher(string).matches()) {
                System.out.println("ALL IS NUM!");
            } else {
                System.out.println("NOT ALL IS NUM!");
            }
        }
    }

    如果要在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义。Pattern类的主要作用是进行正则规范的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范。

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

    public class RegexDemo03 {
        public static void main(String[] args) {
            String str = "19W3-12-51";
            String pat = "\d{4}-\d{2}-\d{2}";
            Pattern p = Pattern.compile(pat);
            Matcher m = p.matcher(str);
            if (m.matches()) {
                System.out.println("OKKKKKK!");
            } else {
                System.out.println("NOOOOOO!");
            }
        }
    }

    按数字拆分字符串:

    public class RegexDemo04 {
        public static void main(String[] args) {
            String str = "A1BFOEIWOEF02223IOFEJW09323";
            String pat = \d;  // d 代表数字
            Pattern p = Pattern.compile(pat);
            String s[] = p.split(str);
            for (int x = 0; x < s.length; x++) {
                System.out.println(s[x] + " ");
            }
        }
    }

    替换所有数字为#:

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

    public class RegexDemo05 {
        public static void main(String[] args) {
            String str = "A1B32GEJO31BFEO231NFE";
            String pat = "\d+";
            Pattern p = Pattern.compile(pat);
            Matcher m = p.matcher(str);
            String newString = m.replaceAll("#");
            System.out.println(newString);
        }
    }

    直接使用string类的支持正则表达式的方法:

    public class RegexDemo06 {
        public static void main(String[] args) {
            String str1 = "A3OFE21FAFEO23FAF321".replaceAll("\d", "#");
            boolean temp = "1932-32-12".matches("\d{4}-\d{2}-\d{2}");
            String s[] = "A1L309LFE233202FAG21LF".split("\d+");
            System.out.println(str1);
            System.out.println(temp);
            for (int x = 0; x < s.length; x++) {
                System.out.println(s[x] + " ");
            }
        }
    }

  • 相关阅读:
    配置sql server 2000以允许远程访问
    SQLServer大数据量插入BULK INSERT
    【项目经理之修炼(5)】《基础篇》别把项目成功当目标(转)
    C#XML文件操作类
    winform窗体总在所有窗体最上层
    配置VSS2005的Internet访问(转)
    U盘引导盘制作
    【项目经理之修炼(4)】《基础篇》故事的主角是你吗?(转)
    SQLServer收缩数据库日志
    【项目经理之修炼(1)】《序章》关于要写给谁看的问题(转)
  • 原文地址:https://www.cnblogs.com/vonk/p/3912901.html
Copyright © 2011-2022 走看看