java-正则表达式

package day_7_28;

import java.util.Arrays;

/**
 * 正则表达式
 * 正则本身也是字符串
 * 用于匹配字符串中字符次序的‘规则字符串’
 * String.matches(正则表达式)方法:将一个字符串和正则表达式匹配,成功返回true 失败返回false
 * String.split()  劈开
 * String.replaceAll()  全局替换
 * 用途:用户表单数据检查,字符串规则检查
 */
public class zhengzeDemo {
    public static void main(String[] args) {//正则表达式
        String regex1="abc";//abc
        String regex2="[abc]";//abc中的任意一个
        String regex3="[a-z]";//a-z中的任意一个
        String regex4="\\d";//0-9中的任意一个
        String regex5="\\D";//非数字字符
        String regex6=".";//任意一个字符
        String regex7="\\w";//单词字符,a-z,A-Z,0-9 下划线 中的任意一个
        String regex8="\\W";//非单词字符
        String regex9="\\s";//空白字符 \t\n\r\f
        String regex10="\\S";//非空白字符
        /**数量词**/
        String regex11="a?";//0个或1个a字符                                   前面的组可有有无
        String regex12="a*";//0个或任意多个a字符        前面的字符数量>=0
        String regex13="a+";//1个到任意多个a字符       前面的字符数量>=1
        String regex14="a{3}";//表示3个a字符
        String regex15="a{3,}";//表示3个到任意多个a字符(大于等于3个)
        String regex16="a{4,6}";//表示4个到6个a字符

        /**
         * 正则匹配特殊字符时,需要   \  进行转义
         * 特殊字符包括:[] + . 
         * java String API 方法matchs()
         * 用于测试字符串整体是否符合正则规则
         * 检查"a"是否符合[ab]的规则
         * 
         * 分组(序列1|序列2|序列3)     序列1 序列2 序列3 多选一
         */
        boolean b="056568".matches("\\d{6}");//检验邮编
        boolean c="+8615129609683\b".matches("(\\+86|0086)?\\s?\\d{11}\b");//检验手机号
        boolean d="45h4f.jar".matches("\\w+\\.jar");//检验带文件名(不含汉字及特殊字符)的.jar文件
        boolean e="魅-+&力.jar".matches(".+\\.jar");//检验带文件名(含汉字及特殊字符)的.jar文件
        boolean f="大da.gif".matches(".+\\.(png|jpg|gif|jpeg)");//检验带文件名的图片文件
        System.out.println("llll"+c);
        /**
         * 案例:检查一个字符串是否是整数数组
         * 正则:int\[\]
         */
        System.out.println("int[  ]".matches("int\\[\\s*\\]"));//true
        /**
         * 测试email是否合法
         */
        boolean g="1546dd@163.com.cn".matches("\\w+@([a-zA-Z0-9]+\\.){2}[a-zA-Z0-9]+");
        System.out.println(g);//true
        System.out.println(".5flkk".matches("\\.5f?lk+"));//true
        /**
         * ^代表字符串的开始
         * $代表字符串的结束
         * 用matches()方法默认是从头到尾  包含^ $边界检查。
         */

        /**
         * String 提供了API切分方法split()
         * String[] data=str.split(正则表达式);
         * 将字符串str按照匹配到的位置切开,切除匹配到的字符,将切开的结果保存到字符串数组
         */
        String str="tom,110, tom@163.cmo.cn,  北京";
        String[] data=str.split(",\\s*");//以 ,空白字符 拆分
        System.out.println(data.length);//4
        System.out.println(data[3]);//北京
        System.out.println("192.168.109.45".split("\\.")[3]);
        /**
         * String replaceAll(String regex,String replacement);
         * 将字符串中匹配到 regex正则表达式的字符串替换成 replacement字符串,并返回新字符串
         */
        String str1="你大爷的,我去了你家,你大爷的";
        String data1=str1.replaceAll("你大爷的", "**");
        System.out.println(data1);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰河家园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值