正则表达式

正则表达式

正则表达式使用来对字符串进行验证,在很多时候我们需要指定的字符串格式或者内容,但是客户输入可能不一样,此时可以使用正则表达式对用户输入的数据进行简单的验证。
DEMO:去除字符串中的非数字类型的字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="asdfsd8f7ds8g68d7sfg567dfs67dsf67g65sdf67gsdf87665g78sfd675gs6df57";
        StringBuffer  sb=new  StringBuffer();
        for(int   i=0;i<str.length();i++) {
            char  c=str.charAt(i);
            if((int)c>=48&&(int)c<=57) {
                sb.append(c);
            }
        }
        System.out.println(sb);
    }
}

在这里插入图片描述
以上使用的是字符串的方法结合循环实现字符的过滤操作,那么如果使用正则只需要一行代码。
DEMO:使用正则实现

ackage com.sun;
public class Test {
    public static void main(String[] args){
        String  str="asdfsd8f7ds8g68d7sfg567dfs67dsf67g65sdf67gsdf87665g78sfd675gs6df57";
        System.out.println(str.replaceAll("\\D",""));
    }
}

在这里插入图片描述
"\D":表示非数字的字符,
DEMO:正则[abc]
匹配abc中的任意一个字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="ab";
        String  regex="[abc]";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

false
DEMO:【^abc】
匹配出abc外的任意一个字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="d";
        String  regex="[^abc]";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:[a-z]
匹配a~z中的任意一位字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="d";
        String  regex="[a-z]";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:[a-zA-Z]
匹配从az或者AZ中的任意一位字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="H";
        String  regex="[a-zA-Z]";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:[0-9]
匹配0~9之间的任意一位数字

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="9";
        String  regex="[0-9]";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
  }

true
DEMO:\d
是匹配[0~9]的正则的简写

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="9";
        String  regex="\\d";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:\D
匹配任意一位非数字字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="S";
        String  regex="\\D";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO: \s
匹配一位空格字符

ackage com.sun;
public class Test {
    public static void main(String[] args){
        String  str=" ";
        String  regex="\\s";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:\S
匹配一位非空字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="你";
        String  regex="\\S";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:\w
匹配任意一位数字、字母、下划线

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="s";
        String  regex="\\w";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:\W
匹配除了数字、字母、下划线之外的任意一位字符

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="+";
        String  regex="\\W";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
以上的正则只能匹配一位字符,下面的正则可以匹配多位字符。
DEMO:\d?
匹配数字,但是可以匹配0位或者1位

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="9";
        String  regex="\\d?";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:正则+
匹配正则至少一次

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="9897987987798789987";
        String  regex="\\d+";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
\d+ :可以匹配至少一位数字类型的字符。
DEMO:正则
匹配正则任意次数
*

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="";
        String  regex="\\d*";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:正则{n}
匹配正则n次

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="a0_";
        //可以匹配三个字母、数字、下划线
        String  regex="\\w{3}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:正则{n,}
匹配正则至少n次。

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="a0_sssss";
        //可以匹配三个字母、数字、下划线
        String  regex="\\w{3,}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:正则{n,m}
匹配正则n~m次

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="a0_ss";
        //可以匹配三个字母、数字、下划线
        String  regex="\\w{3,5}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:正则1正则2正则3
同时满足三个正则

ackage com.sun;
public class Test {
    public static void main(String[] args){
        String  str="sadf234  ";
        String  regex="\\w{3,5}\\d*\\s{2}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
出现多个正则的时候不但要满足正则还需要顺序和正则表达式保持一致
DEMO:正则1|正则2
满足两个正则中其中一个正则即可

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="xxss";
        String  regex="\\w{3,5}|\\d*|\\s{2}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true
DEMO:(正则)
将多个正则视为一组

package com.sun;
public class Test {
    public static void main(String[] args){
        String  str="assd43545dfhgftgh6";
        String  regex="(\\w{3,5}\\d*\\w*\\d{1})|\\s{2}";
        //如果匹配成功返回true 否则就是返回false
        System.out.println(str.matches(regex));
    }
}

true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值