Java_07_01 正则表达式

Java里面: java

   Pattern –git

java.util.regex
Patternspa

表达式.net

含义对象

示例ci

\d字符串

表示数字 一个get

    String str = "3";it

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

        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 {

    @Test

    public void test1() {

        String str = "              XX      YY                 ";

        //str= str.trim();

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

       

        //去掉全部的空格

        strstr.replace(" ", "");

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

    }

}

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

asdfasdfad@123.com

asdfasdf@.com 不是

afdasd@asdf@a163.com 不是

adfasdfas.@qq.com不是

使用正则验证:

    @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

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息