正则表达式

Posted huochemeiyouhuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。



就是一个模式串,常用于判断字符串是事匹配指定的模式

[abc] 匹配abc中的一个,要么是a,要么是b,要么是c

. 任意字符

d 数字

s 空白字符

w 单词字符[a-zA-Z0-9_]

X? 0次或1次

X* 任意次

X+ 至少1次

X{n} 正好n次

X{n,} 至少n次

X{n,m} 至少n次,最多m次


使用

    //1)matches() 判断字符串是否匹配正则表达式的格式
        String email = "g123456h@163.com";
        //判断字符串是否是邮箱的格式
        String pattern = "\w{6,}@\w{2,}\.(com|net|cn)";
        System.out.println( email.matches(pattern) );
        //判断用户名中必须包含字母与数字,并且要求6位以上
        
        //2)
        String text = "北京1234北京节点";
        text = text.replaceAll("\d", "*");
        System.out.println( text );
        
        //3)split()字符串分隔
        text = "Good good study,day           day up!";
        //把字符串中的单词分离出来, 英文单词之间使用空格 , tab, 英文标点符号
        String[] words = text.split("[\s,.!?]+");
        for (String string : words) {
            System.out.println( string);
        }
        text = "name:lisi,age:18;name:wangwu,age:20;name:feifei,age:28";
        //把字符串中人的信息分离出来,创建Person对象, 把这个三人的信息保存到数组中
        //创建Person类,包括姓名与年龄两个字段
        //把字符串中的信息分离出来 , split("[:,;]");
        //  [name,lisi,age,18,name,wangwu,age,20,name,feifei,age,28]
        //Person  [] personsss = new Person[3];


检验账号密码格式

Scanner c = new Scanner(System.in);
System.out.println("请输入密码");
String pwd = c.next();
while (!pwd.matches("(?![0-9]+$)(?![a-zA-Z]+$)\w{6,}")) {
    System.out.println("密码格式不正确,必须包含字母和数字,要求6位以上");
    pwd = c.next();
}

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式