(JAVA)正则表达式

正则表达式的常见规则
1.字符类
    [abc]:字符必须是abc其中一个
    [a-z]:字符必须是小写字母
    [A-Z]:字符必须是大写字母
    [a-zA-Z]:字符必须是字母
    [^abc]:字符不能是abc其中一个
    [^a-z]:字符不能是小写字母
    [^a-zA-Z]:字符不能是字母

2.预定义字符类
    .   匹配任意字符
    \d  匹配数字
    \D  匹配非数字
    \w  匹配单词字符   \\w==[a-zA-Z0-9_] 数字字母下划线
    \W  匹配非单词字符


3.数量词
    x*   字符出现0次或多次
    x?  字符出现一次或一次也没有
    x+   字符出现一次或多次
    x{n}  字符刚好出现n次
    x{n,}   字符最少出现n次
    x{n,m]  字符最少出现n次,最多出现m次

4.边界匹配
    ^   匹配行的开头
    $   匹配行的结尾
    \b  匹配英语单词
package com.book.lite;
import java.util.regex.*;

/**
 * @author zhangyu
 * @date 2021年08月17日 12:38 下午
 * 正则表达式
 * 1.正常运用
 * 2.切割slit()
 * 3.替换replaceAll(规则,替换后内容)
 * 4.正则表达式的获取功能(查看自己的正则表达式是否正确):实现步骤
 * import java.util.regex.*;
 *      1.使用Pattern类的静态方法compile,将正则规则预匹配
 *      static Pattern compile(正则规则)
 *      返回Pattern类对象
 *
 *      2.使用Pattern类的非静态方法matcher,将正则规则与查找的字符串匹配
 *      Matcher matcher(字符串)
 *      返回Matcher类的对象
 *
 *      3.使用Matcher类的方法find() 查找符合规则的字符串,如果有返回true
 *
 *      5.使用Matcher类的方法group() 获取内容
 *
 */
public class RegexDemo {
    public static void main(String[] args) {
//        System.out.println(methon_1());
//        System.out.println(methon_2());
//        System.out.println(methon_3());
//        System.out.println(methon_4());
//        System.out.println(methon_5());
//        System.out.println(methon_6());
//        methon_7();
//        methon_8();
//        methon_9();
        methon_10();

    }
    /**
     *
     * @author zhangyu
     * @date 2021/8/17 12:41 下午
     * @return boolean
     * 判断一个四个字母的字符串中间字母是否是元音
     */
    public static boolean methon_1(){
        String a = "bopl";
        boolean A = a.matches("b[aeiouAEIOU]{2,}l");
        return A;
    }


    /**
     *
     * @author zhangyu
     * @date 2021/8/17 11:31 下午
     * @return boolean
     * 判断一个字符串中是否含有数字
     */
    public static boolean methon_2(){
        String b = "a2c";
        boolean B =  b.matches("a[\\d]c");
        return B;

    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/17 11:43 下午
     * @return boolean
     * 判断字符串中无数字
     */
    public static boolean methon_3(){
        String c = "asd";
        boolean C = c.matches("[a-z][\\D][a-z]");
        return C;
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/17 11:46 下午
     * @return boolean
     * 判断一个字符串中,某个字符只能出现一次,或一次都没有
     */
    public static boolean methon_4(){
        String d = "ab";
        boolean D = d.matches("a?b?");
        return D;
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/17 11:51 下午
     * @return boolean
     * 判断一个字符串中,某个字符串可有可无
     */
    public static boolean methon_5(){
        String e = "a";
        boolean E = e.matches("ab*");
        return  E;
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/17 11:55 下午
     * @return boolean
     * 判断一个字符串中,某个字符至少出现一次
     */
    public static boolean methon_6(){
        String f = "look";
        boolean F = f.matches("o+");
        return F;
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/18 12:07 上午
     * 使用String类切割功能
     */
    public static void methon_7(){
        String g = "wergghjkgll";
        String [] G = g.split("g+");
        for(int x =0; x < G.length ; x++){
            System.out.println(G[x]);
        }
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/18 11:32 下午
     * 使用字符串的替换功能replaceAll() 只有这个方法支持正则
     */
    public static void methon_8(){
        String h = "sdfghj23nfy5dssldi5";
        String H = h.replaceAll("\\d","#");
        System.out.println(H);
    }

    /**
     *
     * @author zhangyu
     * @date 2021/8/18 11:58 下午
     * 匹配出一句话中有四个字母的单词
     */

    public static void methon_9(){
        String str = "what is your name  my name is Alina";
        Pattern p = Pattern.compile("\\b[a-zA-Z]{4}\\b");
        Matcher m = p.matcher(str);
        while (m.find()){
            System.out.println(m.group());}
    }

    public static void methon_10(){
        String email = "abcd123@asd.com.cn";
        boolean i = email.matches("[\\w]+@[a-z0-9]+(\\.[a-z]+)+");
        System.out.println(i);
    }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值