博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之正则表达式
阅读量:5146 次
发布时间:2019-06-13

本文共 2359 字,大约阅读时间需要 7 分钟。

不使用正则表达式:

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] + "\t");
        }
    }
}

替换所有数字为#:

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] + "\t");
        }
    }
}

转载于:https://www.cnblogs.com/vonk/p/3912901.html

你可能感兴趣的文章
onenet基础通信套件返回+CIS ERROR: 50的问题解决
查看>>
python操作hdfs模块上传文件到HDFS
查看>>
Flex XML搜索、匹配
查看>>
python中的基本数值计算
查看>>
缩略图悬浮效果的jQuery焦点图
查看>>
使用libevent编写高并发HTTP server
查看>>
逆向工程 - Reveal、IDA、Hopper、HTTPS抓包 等
查看>>
hdu 1455 Sticks
查看>>
第2章 构造函数语意学
查看>>
TCP—为什么是AIMD?
查看>>
java之路 面向对象基础
查看>>
dockerfile
查看>>
为什么利用多个域名来存储网站资源会更有效?
查看>>
NPOI操作
查看>>
mysql索引总结----mysql 索引类型以及创建
查看>>
atrous convolution
查看>>
JavaScript--日期格式化
查看>>
解决新建Maven项目webapp-- index.jsp报错
查看>>
Android 知识总览
查看>>
vue-router2.0 初学--动态赋值
查看>>