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

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

hot3.png

Java里面:

   Pattern –

java.util.regex

Pattern

表达式

含义

示例

\d

表示数字 一个

    String str = "3";

        boolean boo = str.matches("\\d");

        System.err.println(boo);// true

        //声明声明格式编译成Pattern对象

        Pattern p = Pattern.compile("\\d");

        boolean boo2 = p.matcher(str).matches();

        System.err.println(boo2);

数量词

  ?

  +

  *

 24

  2,}

  {5}

 

0~1

1~N

0~N

2~4

2~M

5

 

表达式:

  .

  \D

  \w

 

 

 

 

 

 

 

 

 

[   ..  …] 里面的值可选的

 

 

表示是任意字符

非数字

[a-zA-Z]

 

 

.* - 任意0~N个字符。

.

任何字符(与行结束符可能匹配也可能不匹配)

\d

数字:[0-9]

\D

非数字: [^0-9]

\s

空白字符:[ \t\n\x0B\f\r]

\S

非空白字符:[^\s]

\w

单词字符:[a-zA-Z_0-9]

\W

非单词字符:[^\w]

  必须的

1:正则的使用

String类的方法:

 1trim – 去掉两边的空格。

public class Demo02 {

   

    public void test1() {

        String str = "              XX      YY                 ";

        //str= str.trim();

        //System.err.println(">"+str+"<");

       

        //去掉所有的空格

        strstr.replace(" ", "");

        System.err.println(">"+str+"<");

    }

}

2:请输入一个字符串,验证这个字符串是邮件地址

不是

不是

不是

使用正则验证:

    @Test

    public void test2(){

        String regex = ".{3,}(.[a-z]{3,})@[a-z0-9]{2,6}\\.(com|cn|net|org|gov)";

        Scanner sc = new Scanner(System.in);

        while(true){

            String mail = sc.nextLine();

            boolean boo = mail.matches(regex);

            System.err.println(boo);

        }

    }

 

 

 

    @Test

    public void test3() throws Exception {

        Scanner sc = new Scanner(System.in);

        String pwd = "";

        int i = 0;

        while (i < 3) {

            System.err.println("plz enter your pwd:");

            pwd = sc.nextLine();

            if (pwd.length() < 6) {

                System.err.println("小于6");

            } else {

                boolean boo = pwd.matches("\\d*[a-z]+\\d*");

                boolean boo2 = pwd.matches("[a-z]*\\d+[a-z]*");

                if (boo && boo2) {

                    System.err.println("成功了");

                    break;

                }

 

            }

            if (i == 2) {

                System.err.println("输入超过次数\n");

                return;

            }

            i++;

        }

        System.err.println("你的密码是:" + pwd);

    }

 

用户输入任意的字符:

  计算里面的字符,数字,其他字符的个数:

   Kd48&k - >

     Letter : 3

     Number : 2

     Other : 1

 

    @Test

    public void test4() {

        Scanner sc = new Scanner(System.in);

        while (true) {

            String str = sc.nextLine();

            int letter = 0;

            int number = 0;

            int others = 0;

            for (int i = 0; i < str.length(); i++) {

                if (Character.isLetter(str.charAt(i))) {

                    letter++;

                } else if (Character.isDigit(str.charAt(i))) {

                    number++;

                } else {

                    others++;

                }

            }

 

            System.err.println("letter:" + letter + "," + number + "," + others);

 

        }

    }

 

    @Test

    public void test5() {

        Scanner sc = new Scanner(System.in);

        while (true) {

            String str = sc.nextLine();

            // 字符

            String str1 = str.replaceAll("[^a-z]", "");

            System.err.println(str1 + "," + str1.length());

 

            String str2 = str.replaceAll("[^0-9]", "");

            System.err.println(str2 + "," + str2.length());

 

            String other = str.replaceAll("[a-z0-9]", "");

            System.err.println(other + "," + other.length());

        }

    }

 \d

\.

+,*,?

^ - 匹配字符的开始

[^a] – 不是a

{n,m}

()

 

[a-z0-9A-Z_] = \w

转载于:https://my.oschina.net/u/2354614/blog/543777

你可能感兴趣的文章
初次使用Eclipse,坑一二
查看>>
[c++] polymorphism without virtual function
查看>>
Effective_STL 学习笔记(十六) 如何将 vector 和 string 的数据传给遗留的API
查看>>
android定位问题
查看>>
hdu-1242 dfs+各种剪枝
查看>>
Sql Server 分区之后增加新的分区
查看>>
C语言基础第三次作业
查看>>
ML | Naive Bayes
查看>>
javascript:正则表达式、一个表单验证的例子
查看>>
第一个Maven工程的目录结构和文件内容及联网问题
查看>>
js移动端 可移动滑块
查看>>
CCNP交换实验(5) -- 网关热备冗余
查看>>
遇到的情况记录
查看>>
Django ORM那些相关操作
查看>>
大白话5分钟带你走进人工智能-第一节开篇介绍以及线性回归简介篇
查看>>
Hive篇--搭建Hive集群
查看>>
Javascript小括号“()”的多义性
查看>>
mokoid android open source HAL hacking in a picture
查看>>
Servlet
查看>>
Effective Java 学习笔记之二
查看>>